ChatGPT MS애저톤 .. 넘 나가고 싶당 ... 원띵 읽은 지 얼마나 됐다고 또 이것저것 다하고 싶니 .. 전공강의에 집중하자구 ...
데이터베이스는 이렇게 복습 꾸준히 하고 / 컴퓨터그래픽스는 책으로 싹 복습하고 연습문제랑 족보 돌리고 / 문제는 인터넷 프로토콜인데 정리+복습+암기+반복 ... / 논리설계 책 싹 복습하고 암기 .. / ... 태산이다 ...
*** 지금부터 정리하는 내용은 모두 Avil Silberschatz, Henry F.Kroth, S.Sudarshan의 "Database System Concepts 7th edition"이라는 교재와, 고려대학교 정순영 교수님의 2023년 1학기 "데이터베이스" 강의를 기반으로 하고 있다. 모든 강의자료 캡쳐본은 정순영 교수님께서 권한을 갖고 있다. ***
1) Relational Model과 Relational DBMS란?
위의 그림에서는 구조만 잘 이해하면 된다고 말씀해주셨다.
//
User에 다양한 유형이 있는데, 그 user들이 application을 사용하고
이때 이 application과 실제 Database를 이어주는 것이 DBMS이며,
우리가 배울 것은 "Relational DBMS"와 "Relational Database"라는 것 !
//
Data Model:
Data Structure / Data relationship / Data semantics + 이러한 데이터들의 constraints를 정의할 수 있는 도구들의 집합
p8 Underlying the structure of a database is the data model ( = a collection of conceptual tools for describing data, data relationaships, data semantics, and consistency constraints )
데이터 / 데이터 관계 / 데이터 의미 / 일관성 제약등을 설명하는 '개념적인' 도구의 집합이다
➡️ Relational Model:
데이터와 데이터 관계를 표현하는 데 모두 '테이블'을 사용하며, 이 테이블들을 Relation이라고도 한다.
p8 uses a collection of tables to represent both data & relationships among those data / Tables are also known as relations / The relational models is an example of record-based model ( fixed-format records of several types ) / The relational data model is most widely used
✅ Set theory 집합이론
✅ Predicate Logcis (First Order Logics)
를 기반으로 하고 있다.
( predicate logics = 술어논리? 명제에 존재하는 '주어'와 '술어'의 구조로부터 '주어'가 될 수 있는 대상에 대해 한정 기호를 사용하는 논리이다. 따라서 명제 논리와는 달리 명제의 내부 구조 분석에 의한 추론 규칙을 다룰 수 있다 _wiki )
(+) The first argument of a predicate normally translates to the subject of a senentence, while the second usually translates to its genitive or possessive( 속격 / 소유격 _ 결국 명사수식)
Ex) brother(Paul, Richard) ➡️ Paul은(주어) Richard의(소유격) 형제
Ex) employee(Mr.Smith, Mr.Doe) ➡️ Mr.Smith(주어)는 Mr.Doe의(소유격) 직원
*** 함수형 프로그래밍할 때와 유사하게, 함수명(인자)의 형식으로 나타낼 수 있다 ***
2) Relational Model의 Predicate Logic / Set theory 기반에 대하여
✅ First Order logic
앞에서 언급했듯이, 술어 논리는 / 주어가 될 수 있는 대상에 대해 한정 기호를 쓰는 논리 / 이다.
"학번이 S1인 학생의 이름은 홍길동이다" 에서 주어가 될 수 있는 것을 따로 빼서,
"S1은 학번이다." / "홍길동은 이름이다."로 나누고
이를 학번과 이름의 column을 가진 table로 구성되는 과정 -!
✅ Set Theory
집합이론의 집합에서는 중복된 원소가 없다고 가정한다. ( multi set을 인정하지 않는다 ) + 원소의 순서는 무관하다.
따라서 위의 예시에서 { 2, 5, 6, 9 }와 { 5. 2, 6, 9 }는 같은 집합에 해당하며,
{ 2, 5, 5, 6, 9 }는 set에 해당하지 않는다.
3) Relational Model의 기본적인 구조
집합 D1, D2, ... Dn이 있다고 할 때, relation r은 D1 x D2 x ... x Dn의 부분집합이다.
p37 A relational model consists of a collection of tables, each of which is assigned a unique name ...
( tuple is simply a sequence _or list of values. A relationship between values is represented mathematically by an n-tupe of values, which corresponds to a. row in a table. )
➡️ relation refers to a table / tuple refers to a row / attribute referes to a column of a table / relation is a set of n-tuples
➡️ we use the term relational instance to refer to a specific instance of a relation.
🔎 규칙 ( _ Set theory를 생각해보자 )
- 모든 tuple이 고유해야 한다
- tuple들의 순서는 무관하다
- attribute들의 순서는 무관하다
- attribute들의 값은 atomic(= 원자성의, 최소단위의 정보) _ 더이상 쪼갤 수 없는 정보여야 한다.
*** Database schema는 relational schema들의 모임이다. ( 구분필요 )
relation은 소문자, relatoinal schema는 앞으로 대문자로 표현할 것 ***
위의 Regal relation은 인스턴스들을 표현한 것이지만, 소문자 r을 활용하여 표현했는데, 종종 이렇게 작성하기도 한다.
4) Attribute Types
🤔 위의 예시와 같이 하나의 셀에 연락처 3개를 넣는다면? 🤔
➡️ 컴퓨터 입장에서는 단순히 하나의 긴 문자열일 뿐, H와 O와 M에 대한 전화번호를 알아서 따로따로 인식하지 않을 것이다. atomic한 정보라고 생각할 것이기 때문에
✅ 정리
- 각 attribute는 이름이 있다.
- 각 attribute에서 허용되는 값들의 집합을 domain이라고 한다.
- 앞의 예시에서 생각해봤듯이, attribute의 값들은 (normally) atomic일 것이 요구된다
( = multivalued attribute values, composite attribute values ❌ )
- null은 모든 domain의 원소가 될 수 있다.
( null값은 다양한 operations의 정의를 복잡하게 하므로, null값의 영향은 일단은 무시할 예정 .. )
✅ Null값의 2가지 의미
(1) 값이 존재하긴 하지만, 아직 모른다
(2) 입력할 값이 없다 ( ex. 결혼하지 않은 사람의 배우자 이름 셀 )
4) Relation Schema의 간단한 표현에 대하여
relation schema를 R = {A1, A2, ..., An}과 같이 간략하게 표현할 때가 있는데, Domain을 생략하고 쓸 때도 있다는 것 !
r(R)의 의미는 relation schema R을 기반으로 한 relation인 r이다.
5) Relational Database란
[ 정의 ]
: A database consists of multiple relations
➡️ 따라서, relational database도 여러 relation으로 구성된 묶음일 것이다.
[ Bad Design ]
univ ( instructor -ID, name, dept_name, salary, student_id, ... )
두 명의 학생이 같은 instructor를 가질 수도 있으므로 repetition of information이 나타난다.
advisor가 없는 학생도 표현할 수 있어야 하므로 null values가 필요하다.
위의 과정에서, 학생에 대한 저 table이 들어왔을 때
학번 / 이름 / 학과라는 스키마schema 정보가 information Schema로 넘어가고
각각의 3, 7, 12 / 김민형, 이영주, 이성호 / 컴교, 컴교, 컴교 등의 값들은 instance database로 넘어간다.

- Database schema는 relational schema들의 모임이다 - 이 둘을 구분하라는 것이 정확히 무슨 의미인지 모르겠다
- Bad Design예시 교수님께서 직접 설명해주신 부분 맥락이 이해가 안된다
- Data semantics가 정확히 어떤 건지 모르겠다
[ 용어 모음집 ]
Data Model:
Data Structure / Data relationship / Data semantics + 이러한 데이터들의 constraints를 정의할 수 있는 도구들의 집합
데이터 / 데이터 관계 / 데이터 의미 / 일관성 제약등을 설명하는 '개념적인' 도구의 집합이다
Relational Model:
데이터와 데이터 관계를 표현하는 데 모두 '테이블'을 사용하며, 이 테이블들을 Relation이라고도 한다.
Relational Database:
: A database consists of multiple relations
Relation:
집합 D1, D2, ... Dn이 있다고 할 때, relation r은 D1 x D2 x ... x Dn의 부분집합이다.
*** Relation Schema와 Relation 구분하기 (조심!)
'CS전공강의 > 데이터베이스' 카테고리의 다른 글
데이터베이스 Chapter15: Query Processing (N회차) (0) | 2023.04.06 |
---|---|
데이터베이스 Chapter1: Introduction (2회차) (0) | 2023.04.05 |
데이터베이스 Chapter1: Introduction (1회차) (1) | 2023.03.20 |