스키마 : 속성과 개체, 개체들의 관계에 대한 정의와 제약 조건들을 기술한 것. 속성 : Attribute, 개체들의 특성. 개체 : Entity, 속성들의 집합. 관계 : Relation, 개체들의 관계를 뜻함. 스키마는 데이터베이스 내에 어떤 구조로 저장되는가를
relation data model은 가장 심플한 데이터 모델 중 하나다. 배우기 쉽다. 성능도 좋다. 다 좋다. 개념적 데이터 모델, 구현 데이터 모델, 물리적 데이터 모델이 있는데 관계 데이터 모델은 구현 데이터 모델이다. Concept of relational
relational data model을 지원하는 두 가지 formal language가 있다.Relational calculus관계 해석. 비절차적 언어. 무엇(What)을 얻을 것인가에 목적이 있다. 원하는 정보가 무엇이라는 것만 정의한다는 점에서 비절차적 언어다.
비절차적 언어로 유저가 원하는 데이터만 지정한다. 처리 순서가 중하지 않다.SQL은 natural language 같은 문장을 사용해 쿼리를 표현할 수 있다.Interactive SQL / Embedded SQL로 나뉜다.DDL : Data Definition Lang
두 개의 테이블 결합조인 조건은 Where에 적는다.가장 대표적으로 " = " 연산.Q: Find the names and department names of all employees.테이블 하나로 조인.이 경우, 한 테이블로 서로 다른 두 개의 alias를 적용해 F
테이블에 하나 이상의 튜플을 insert 한다.튜플들이 referenced table에 삽입된 경우, 참조 무결성 제한 조건을 위배하지 않는다. 그러나 referring table에 삽입된 경우(외래키가 있는), 위배할 수 있다.referened table에 대한 de
개념적 데이터베이스 디자인 과정에서 엔티티, 관계, 무결성 제약 등을 설계한다.엔티티는 데이터베이스에 표시하고 다른 엔티티와 구별할 수 있는 객체다.relation은 2개 이상의 엔티티 간의 관계다.개념적 데이터베이스 디자인의 최종 결과물은 개념적 스키마다.Requir
ER model은 개념적 디자인의 대표적인 모델이다. high-level의 추상화를 제공하고 이해하기 쉽고 표현력이 뛰어나다. ER model은 real world를 relation, attribute, entity로 표현한다. ERD는 엔티티와 relation, at
논리적 디자인 단계에서 ER schema는 관계형 모델로 매핑된다. 논리적 디자인 매핑에 7단계가 있다. 1. Regular entity type and single-valued attribute
ER schema를 테이블로 매핑하고 나면 Update anomalies(갱신 이상)에 직면한다. Normalization(정규화)는 Functional dependency(함수적 종속성)과 pk를 바탕으로 relation schema를 분석함으로써 3가지 갱신 이상을
함수적 종속성은 정규화 과정 중 고려되는 요소이고 한 relation 내부 attribute들 간의 관계를 말한다. 테이블의 인스턴스(튜플)이 아닌 schema의 관점에서 바라보아야 한다. 함수적 종속성은 제 2정규화부터 BCNF 단계까지 적용된다.함수적 종속성을 알기
모든 애트리뷰트는 atomic values(원자값)를 가져야 한다.각 튜플은 고유 식별자로 구분되어야 한다.만약 테이블 내에 반복되는 그룹이 없다면, 1NF를 만족한다.CS_NO 애트리뷰트는 원자값이 아니다. 쪼갤 수 있다. 쪼개준다.ST_NO, NAME, ADDRES
정규화가 진행되면 테이블의 중복과 갱신 이상이 줄어든다.무결성 제한 조건을 수행하기 위한 코드의 양도 줄어든다.정규화는 DB 설계에 있어 중요한 요소지만 high-level의 정규화를 만족하는 schema가 성능적인 관점에서 항상 최적은 아니다.정규화가 1NF, 2NF
Transaction: 프로그램의 처리 단위(e.g., 계좌 이체, 수강 신청 ..)유저가 많아지면 데이터베이스에 동시에 접근하는 상황이 발생할 수 있다.이 경우, 데이터베이스에 대한 Concurrency control(동시성 제어)가 필요하다.동시성 제어트랜잭션의 동
동시성 제어는 여러 유저가 동시에 여러 트랜잭션을 수행하는 환경에서 부정확한 결과를 야기할 수 있는 문제를 방지한다. Concurrency control Serial schedule: 하나에 한 트랜잭션을 수행할 수 있게 트랜잭션 순서를 정한다. Non-seria
트랜잭션을 수행하다 system이 down된 경우 어떻게 하면 트랜잭션의 atomicity(all or nothing)을 지킬 수 있을까? 만약 트랜잭션이 완료된 직후에 system이 dowm되었다면 메인 메모리에 저장된 update 내용들이 아직 disk로 저장되지