3학년 1학기인가 2학기엔가 데이터베이스 과목을 듣고 좋은 성적도 받았지만,,, 다 까먹었다. ㅎ
그래서 가볍게 정리하는 글을 작성하려 한다.
기본 이론이나 개념은 생략하고 ERD, 스키마 설계 같은 것들과 sql 문법을 정리하려 한다.
현실 세계에 존재하는 데이터를 컴퓨터 세계의 데이터베이스로 옮기는 과정이다.
데이터베이스 설계의 핵심 화정인 추상화 Abstraction 단계이다.
추상화는 컴퓨터 관련 과목에서 매우 자주 언급되고 중요한 부분이다.
데이터 모델링을 할 때, ERD를 설계하게 되는데 이는 개체와 관계 다이어그램을 의미한다.
ERD를 정말 잘 설계해야한다.!!!
위의 그림으로 예를 들어 설명하겠다.
사각형: 개체를 표현
마름모: 관계를 표현
타원: 속성을 표현
링크(연결선): 각 요소를 연결하며, 필수적 참여와 선택적 참여를 구분함 (이중선 -> 필수 참여)
레이블: 일대일, 일대다, 다대다 관계 표기
관계에는 종속성이라는 개념을 통해, 약한 개체와 강한 개체를 구분한다.
약한 개체는 다른 개체의 존재 여부에 의존적인 개체로, 자기 자신의 속성으로만 키를 명세할 수 없는 개체 타입이다. 따라서 약한 개체 집합 내에서 서로를 구별할 수 있는 속성으로는 부분키가 있다.
강한 개체는 다른 개체의 존재 여부를 결정하는 개체이다.
강한 개체와 약한 개체는 일반적으로 일대다의 관계가 성립된다.
약한 개체는 강한 개체와의 관계에 필수적으로 참여하기 때문에, 이중 연결선과 이중 사각형으로 표현된다.
또한 해당 관계는 이중 마름모로 표현된다.
릴레이션에서 투플들을 유일하게 구별하는 속성 또는 속성들의 집합을 키라고 한다.
키의 특성으로는 유일성과 최소성이 있다.
유일성 (uniqueness)
하나의 릴레이션에서 모든 투플은 서로 다른 키 값을 가져야 한다.
최소성 (minimality)
꼭 필요한 최소한의 속성들로만 키를 구성한다.
- 수퍼키 (super key)
유일성을 만족하는 속성 또는 속성들의 집합
- 후보키 (candidate key)
유일성과 최소성을 만족하는 속성 또는 속성들의 집합
- 기본키 (primary key)
후보키 중에서 기본적으로 사용하기 위해 선택한 키
- 대체키 (alternate key)
기본키로 선택되지 못한 후보키
무결성 제약조건은 데이터의 무결성을 보장하고 일관된 상태로 유지하기 위한 규칙이다.
무결성: 데이터를 결함이 없는 상태, 즉 정확하고 유효하게 유지하는 것
기본키를 구성하는 모든 속성은 널(Null)값을 가질 수 없는 규칙이다.
외래키는 참조 할 수 없는 값을 가질 수 없는 규칙이다.
(외래키 속성이 널 값을 가진다고 해서 참조 무결성 제약조건을 위반한 것은 아니다.)
관계 데이터 연산에는 관계 대수와 관계 해석이 있는데 우리는 데이터를 처리하는 연산인 관계 대수에 대해 알아보겠다.
관계 대수는 원하는 결과를 얻기 위해 릴레이션의 처리 과정을 순서대로 기술하는 것이다.
위와 같은 연산자들이 있는데 일반 집합 연산자는 너무 간단해서 넘어가겠다.
순수 관계 연산자 중, 셀렉트는 튜플별로 검색을 하고 프로젝트는 도메인별로 검색을 하는 것이다.
중요한 것은 조인이다.
기본적이라 생각되는 정보를 글로 정리하여 작성했지만, 매우 미흡한 글이다.
강의록을 참고하여 개인적으로 중요하다고 생각하는 것만 정리하여 적은 글이기 때문에, 이 글 하나로 데이터베이스에 대한 감을 잡기는 어렵다.
그저 개인적으로 복습용으로 작성한 글일 뿐, 다시 공부할 때는 강의록을 한 번 더 보거나, 글을 좀 더 다듬어야 할 것 같다.