데이터베이스
-
[DB] Recoverable데이터베이스 2021. 4. 24. 16:35
Recoverable schedules 트랜잭션 중 하나가 failure 발생 시 회복 가능한가? -> 값을 write 하는 트랜잭션은 반드시 값을 Read하는 트랜잭션보다 먼저 commit 되어야 함 위 조건을 만족한다면 해당 스케쥴은 recoverable 하다 라고 표현함 Cascading rollback undo 작업 : 트랜잭션이 시작되기 전 상태로 데이터 아이템을 돌려놓음 : 시스템 부하가 큼 모든 트랜잭션이 commit 되지 않은 상태임 T10 으로 인해 T11이, T11로 인해 T12까지 rollback 되는 현상 : Cascading rollback(연쇄 롤백) Cascadeless schedule (ACA, Avoid Cascading, Aborts) write 이후에 read만 하면 되..
-
[DB] Serializablilty데이터베이스 2021. 4. 24. 16:03
Serializability 여러 트랜잭션을 병렬로 동시에 처리하면서도 순차적으로 수행한것과 같은 결과를 냄 Correct 조건 Conflict serializable View serializable Nonserializable Execution 의 조건 Dirty read Lost update Unrepeatable read Schedule 어떤 스케쥴이 correct 하면 이는 serializable 함 여러 트랜잭션들을 동시에 수행하기 위해서는 그 순서를 스케쥴링해야하는데 스케쥴은 다음 조건을 만족 스케쥴은 트랜잭션의 모든 연산들을 포함하고 있어야함 스케쥴의 연산 순서는 트랜잭션 내에서의 연산 순서와 동일해야함 스케쥴 내 트랜잭션이 성공적으로 마무리되면 commit statement를, 실패했다면 ..
-
[DB] 트랜잭션데이터베이스 2021. 4. 24. 14:35
트랜잭션 트랜잭션은 데이터베이스가 데이터를 읽거나 쓰는 최소 단위 트랜잭션 관리의 주요 이슈 하드웨어 / 소프트웨어 / 트랜잭션 실패 여러 트랜잭션을 동시에 실행 할 수 있는 동시성 향상 ACID 트랜잭션은 ACID 를 지녀야한다. Atomicity - 원자성 : All or not. 즉 하나의 트랜잭션 내부의 연산들은 모두 성공하거나 모두 실패해야함 Consistency - 일관성 : 명시적 / 묵시적 integrity consistency 를 모두 만족시켜야함 명시적 consistency : PK(Primary Key), FK(Foreign Key), UK(Unique Key) 등 명시적으로 정의된 규칙 묵시적 consistency : 데이터의 흐름상 자연스럽게 형성되는 규칙. 예) A -> B 송금..
-
[DB] ER 다이어그램 / Ternary relationship데이터베이스 2020. 12. 15. 22:34
Ternary Relationship Ternary relationship 에는 화살표가 두 개 이상 존재할 수 없음 화살표가 2개 이상인 경우에는 두 가지 이상의 해석이 생길 수 있기 때문임 여러 해석이 가능 A와 B가 1:1 맵핑되고, 그것과 C가 Many 의 관계를 가지는 경우 A 혹은 B가 C와 1:N 관계로 맵핑되고, 나머지 하나가 1:1 로 다시 맵핑되는 경우 따라서 이런 혼란을 피하기 위해 화살표는 하나로 제한됨
-
[DB] DB 와 응용프로그램데이터베이스 2020. 12. 9. 21:17
DB 를 이용하여 응용프로그램 제작 Static approaches : 코드에 SQL을 박아 넣는 방법 ESQL/C, ESQL/C++ Dynamic approaches : SQL API 를 호출하는 방법 SQL CLI, ODBC, JDBC 내장 SQL (Embeded SQL) C/C++ 은 SQL 문을 알지 못하기 때문에 컴파일에러가 발생하므로 전처리 과정이 필요 예) EXEC SQL ; END_EXEC 커서 (Cursor) SQL 의 수행 결과가 테이블인 경우 row 가 몇개나 될지 알 수 없기 때문에 고정된 길이의 데이터 구조를 정의할 수 없음 따라서 query 의 수행 결과를 tuple 단위로 리턴해주는 역할을 맡는게 커서임 Dynamic SQL Query 문을 동적으로 받을 수 있음 ODBC, J..
-
[DB] 순환질의 (Recursive query)데이터베이스 2020. 12. 8. 21:54
순환질의 (Recursive query) 회사에서 “사업기획부 산하의 모든 부서를 알아오라" 라는 요구사항이 있을 수 있음 보통의 DB에서는 자기 직속 상위(부모) 부서만을 갖고 있기에 순환질의를 통해 해결할 수 있음 일반적인 Tree 구조에서 Search 하는 문제를 생각하면 이해가 쉬움 courseID : 과목 아이디 prereqID : 위 과목을 듣기 위해 미리 들어야하는 선이수 과목 아이디 WITH RECURSIVE recursivePrereq(courseID, prereqID) AS (SELECT courseID, prereqID FROM prereq) UNION SELECT recursivePrereq.courseID, prereq.prereqID FROM recursivePrereq, pre..