프로그래밍[Univ]/데이터베이스(DB)

[DB] Relational Model(관계형 모델)

Cloud Travel 2012. 3. 11. 11:18
* 데이터를 표현하는 법(Data model)
 - 데이터를 표현하는 법은 자료구조에서 배웠듯이, 리스트, 트리, 그래프, 배열등이 존재한다.
 - 일상생활에 존재하는 데이터는 각각 다른 방법을 사용하면 쉽게 표현이 가능하다.
 - 이렇게 때문에 DBMS의 목적(표현하려는 데이터)과 편리에 의해서 Data Model은 다를 수 있다. 

* Data Model
 - 과거부터 사용된 Network model, Hierarchical model등이 존재한다.
 - Relational Data model, E-R(Entity-Relationship) data model, O-R(Object-relational) data model
   O-O(Object-Oriented) data model이 현재 많이 사용되는 데이터 모델이다

*Relational model
 - 가장 점유율이 높은 Data Model로 Table에 기반혼 모델이다.
 - 주요 개념
  ⓐ Attribute : 하나의 열(column) 
  ⓑ Tuple : Attribute의 집합으로 하나의 행
  ⓒ Domain : Attribute가 가질수 있는 값의 집합(데이터 type 또는 데이터 법위, 데이터 값)
  ⓓ Relation : tuple 들의 집합으로 하나의 table

      


 - Relation의 수학적 개념은 집합이다. Tuple간, Attribute간 순서가 없으며, 동일한 튜플은 존재할 수 없다.
 - 실제 DBMS의 테이블은 중복과 순서등이 존재할 수 밖에 없다.
 
* Schema & Instance
 - Schema : Database의 논리적 구조로 변환이 불가능 (Relation Name, Attribute Name, Domain Definition)
 - Instance : Schema에 실제 들어있는 정보로 변환이 가능하다. 
   


* Null value
 - Null : 특별한 하나의 값으로, 아직 정의되지 않거나, 알려지지 않는 값을 나타낸다.
 - 0과 빈문자열("") 등과는 다른 개념이다.
   (Data에는 0과 빈문자열이 존재할 수 있으며, 그 개념은 알려지지 않는 것과 다르다.)
 - Domain(attribute의 값조건)에는 default로 null을 포함하고 있으며, table 생성시 변환이 가능하다.

* Key
 - Key : Tuple을 구별하기 위한 Attribute의 집합
 - SuperKey(슈퍼키) : Relation에서 Tuple을 식별할 수 있는 Unique한 Attribute의 집합.
 - Candidate Key(후보키) : Superkey중에서 Minimal(최소한의) key.
 - Primary Key : Candidate Key중 하나이며 Null이 될수 없다.
                        무결성을 위해서...
 - Foreign Key : relation을 연결, 참조 해주는 키로 참조되는 relation에서는 primary key이여야 함.
                       참조 무결성을 위해서 반드시 참조된 relation의 PK값에 존재하거나 Null이어야한다.