본문 바로가기

CS/데이터베이스

(12)
[데이터베이스] 트랜잭션 https://en.wikipedia.org/wiki/Isolation_(database_systems) 트랜잭션 하나의 논리적 동작을 정상적으로 수행하는데 필요한 DB 연산들을 모아놓은 데이터베이스 시스템 작업의 기본 단위 ACID 원칙 트랜잭션이 가진 4가지 특성 특성 설명 달성 방법 Atomicity (원자성) 트랜잭션 구성 연산은 모두 실행되거나, 하나도 실행되지 않아야 한다. 장애로 인해 연산이 중단되면 트랜잭션 수행 이전으로 작업을 되돌릴 수 있어야 한다. All or Nothing Commit / Rollback Consistency (일관성) 트랜잭션 성공 전·후에 대한 일관성을 유지해야 한다 (완료 시점에 일관된 상태). ex) 계좌 이체 시 총 금액은 일치해야 함 무결성 제약조건 동시성..
[DB] crow feet notation 엔티티 사이의 관계를 표현할 때 사용하는 방법에는 여러가지가 있을 수 있다. 여기에 대해서는 ER Model에 대해 설명하는 과정에서 예전에 내가 써둔 글이 있어서 첨부한다. https://blaxsior-repository.tistory.com/104 [데이터베이스 03] Entity Relationship Model 하나의 프로그램을 설계할 때는 어플리케이션 디자인 및 데이터베이스 디자인이 필요하다. 이때 수행되는 데이터베이스 디자인은 엄밀하게 따지면 분석(analysis) 및 디자인(design) 작업을 포함하 blaxsior-repository.tistory.com Chen notation / min-max notation 위 글에 기록한 내용에 따르면 우리는 최소 2개의 표기법을 알고 있다. c..
[데이터베이스] Relational Database Design 함수 종속(Functional Dependency) relation 내의 attribute X와 Y에 대해 X가 Y의 값을 unique 하게 결정하여 X->Y가 성립되는 경우 함수 종속이라고 한다. Armstrong's inference rules 다음 추론 규칙들은 일종의 공리 처럼 여겨지며, sound / complete 한 추론 규칙들을 만드는데 사용된다. 따라서 모든 추론 규칙들은 아래 3개 규칙으로 구성되므로 어떤 규칙이든 아래 3개 규칙의 구조로 분해될 수 있다고 한다. Reflective : if X ⊇ Y , then X -> Y Augmentation : if X -> Y, then XZ -> YZ Transitive : if X -> Y and Y->Z, then X->Z 쓸만한 추론 ..
[데이터베이스] Functional Dependency & 정규화 Functional Dependency 함수 형태의 의존 관계를 나타낸다. 일반적으로 X -> Y 라고 하면 X가 Y를 결정하며, 동일한 X에 대해 반드시 동일한 Y가 대응되는 관계가 설정된다. 마찬가지로 Relation 내의 Attribute 사이에서도 constraint 등에 의해 일종의 의존 관계가 나타날 수 있다. 예를 들어 학생의 학번(PK) 은 학생의 개인 정보를 결정한다. 이런 관계를 함수처럼 나타낸 것이 Function Dependency 이다. X : left-hand-side, 반드시 candidate key에 속해야 한다. Y : right-hand-side Function Dependency는 현실 세계에서 속성들에 정용되는 제약조건에 기반하여 생성된다. 특정 스키마 R 내에서 at..
[데이터베이스] Informal Design Guideline for relational database Informal Design Guideline relational database의 디자인은 속성(attribute) 들이 "좋은" relation schema를 가지도록 만드는 작업이다. 이때 relation schema 에는 2개 레벨이 존재하며, 좋은 relation schema를 해당 계층에 대해 논할 수 있을 것이다. Logical "user view" level : 유저가 relation schema와 그들의 의미를 해석하는 계층. 유저에게 노출되는 계층. Storage "base relation" level : base relation 안의 튜플들이 저장 및 업데이트 되는 계층. 데이터베이스 디자인을 위한 가이드라인은 대략 다음과 같다. relation의 각 튜플들은 하나의 entity 혹은..
[데이터베이스] ER Model - Relational Database Design(Mapping) Mapping 현재 사용되는 많은 DBMS들은 Relational Database Model 을 기반으로 하므로, Conceptual Design 영역인 ER Model에 의한 데이터베이스 디자인을 곧바로 DBMS에 적용할 수 없다. 따라서 ER Model 기반의 디자인을 Relational Database Model 에 대응되도록 매핑할 필요가 있다. 모든 정보를 보존 ER 모델에 존재하는 모든 어트리뷰트들은 모두 의미를 지니고 있다. 따라서 Relational 모델에서도 해당 어트리뷰트들 각각을 누락하지 않고 모두 테이블에 대응시켜야 한다. 제약조건을 최대한 유지 Relational 모델은 ER 모델에 비해 표현력이 약하다. 예를 들어 ER 모델에서는 max cardinality나 min-max no..
[데이터베이스] Relational Algebra https://en.wikipedia.org/wiki/Relational_algebra Relational Model에서 Relation은 기본적으로 집합(set) 의 특성을 가지고 있다. 따라서 Relation에는 집합에 대한 성질 및 연산이 적용된다. 이로 인해 중복을 허용하지 않으며, 결합 법칙 및 교환 법칙 등이 성립한다. algebra operation : relation 사이에 적용되는 연산. 연산의 결과로 새로운 relation을 반환한다. relation algebra expression : operation이 모여 표현식을 이루는 것. Operations Unary Relational Operation SELECT ( 𝝈 : sigma ) PROJECT ( 𝝅 : pi ) RENAME (..
[데이터베이스 05] 기본 SQL 문법 SQL 현재 데이터베이스 계열에서 데이터에 접근하기 위해 가장 많이 사용하는 언어로, Chamberlin 과 Boyce 두 학자들이 저술한 "SEQUEL TO SQUARE" 이라는 논문에서 처음 등장했다고 한다. 이때 당시에 SEQUEL(Structured English Query Language) 라는 표현에 이미 상표가 붙어 있어, IBM사에서 대신 SQL이라는 용어를 사용했다고 한다. Relational Data Model을 문법으로 표현할 때 사용되지만, Index 지정 등 Physical 수준의 속성을 지정하는 기능도 포함되어 있다. 또한 DDL(Data Definition Language), DML(Data Manipulation Language) 의 기능을 모두 수행하는, 실질적으로 데이터베..