Data를 어떤 자료구조를 사용할 것인지.. 데이터들끼리 어떤 관계를 가지고 있을지 이런 것들을 표현하기 위해 Data Model
이 등장하게 되었다.
그리고 DBMS마다 Data Model이 다를 수 있다.
Relational Data Model
가장 널리 사용되는 데이터 모델이며 요즘에는 객체로 데이터 모델을 설계하는 Object-Relational Model인 OR-DBMS를 많이 사용한다.
현재 대부분의 RDBMS는 실직적으로 ORDBMS이다.
테이블 형태로 데이터를 표현하며 표준언어인 SQL
을 사용한다.
Entity-Relational(E-R) Data Model
데이터베이스 설계에 대부분 사용되며 데이터 설꼐의 목적인 고객의 요구사항을 반영하여 고객에게 설명할 때 도형을 사용하여 쉽게 보여주기 위해 사용한다. 또한 E-R Model이 자연스럽게 Relational Model로 바뀔 수 있기 때문에 전세계적으로 널리 사용되고 있다.
관계형 모델은 테이블 형태로 데이터를 표현한다.
Domain
속성이 가질 수 있는 값의 집합이다. 학년의 경우 1,2,3,4 의 값이 나올 수 있기 때문에 Domain 은 {1,2,3,4}가 된다.
정의되지 않은 값인 Null
을 모든 Domain이 포함하고 있다
Tuple(Record, row)
속성에 대해 값들이 모인 집합이다. 위 테이블의 속성값들에 해당하는 모든 값을 모아 놓은 row를 말한다. 만약 속성에 대한 값이 하나라도 없다면 그건 튜플이 아니다!!
Relation(table)
튜플의 집합
Database
테이블의 집합
집합이라는 것은 중복을 허용하지 않는다.
따라서 Domain, Tuple, Relation, Database는 중복을 허용하지 않는다.
스키마는 데이터베이스의 논리적인 구조를 일컫는다.
무슨말인가? 라고 생각하면 스키마는 간단하게 테이블의 뼈대라고 생각하면 될 것 같다.
(스키마에는 논리적인 스키마와 물리적 스키마가 존재하는데 아래에서 이야기하는 스키마는 논리적스키마라고 생각하자! )
위 그림처럼 고객과 은행계좌라는 테이블이 있을때 해당 속성의 이름을 정하는 것을 스키마라고 한다. 스키자는 바뀌게 되면 위험하기 때문에 변하지 않는 것이 좋다.
데이터베이스의 한 순간! 찰나! 를 인스턴스라고 일컫는다.
쉽게 말하자면 데이터베이스의 현재 상태이다.
왼쪽과 오른쪽 테이블은 조회한 시간이 다르다.
그 때 data의 값이 달라질 수가 있다. 이럴때 왼쪽과 오른쪽 테이블의 Instance의 값이 다르다고 표현한다. Instance의 값은 시시각각 변할 수 있다
Key
란 테이블의 Tuple을 구현하기 위한 Attribute들의 집합이다.
key의 종류에는 4가지가 존재한다.
지도교수
속성은 교수테이블의 교번
속성값을 참조한다.위를 예를 들자면 참조되는 테이블인 교수테이블의 교번
속성은 꼭 Primary key이어야 한다.
그리고 학생 테이블의 지도교수 속성값을 첫번째 튜플처럼 '11215' 라는 값이 들어갈 수도 있지만 알수없는 값인 null이 들어갈 수도 있다. 하지만 교수 테이블의 교번 값은 Primary key이기 때문에 Null이 될 수는 없다!!!
도형으로 쉽게 Data를 표현하는 E-R Data Model은 위처럼 생겼다!
Id를 기본키로 하는 교수 테이블과 Id를 기본키로 하는 학생 테이블은
지도교수라는 이름으로 관계가 형성되어있다는 것을 의미한다.
위 글은 공부하며 작성한 글이므로 내용상의 오류가 있을 수 있습니다.
잘못된 부분은 덧글로 이야기 해주세요😀