[데이터베이스설계론] 4주차 수업 내용 정리
4주차 수업 내용 정리
(지난 시간에 이어) 파이썬 언어와 PostgreSQL
- 파이썬 언어로 MIMIC_IV의 데이터를 분석하는 프로그램을 개발
- MIMIC_IV는 미국 메사츄세츠 공과대학에 의해 관리되는 대규모 오픈액세스 의료 데이터세트
- 파이썬 언어로 작성된 분석 프로그램이 MIMIC_IV에 데이터를 요구하면 MIMIC_IV은 데이터를 제공
- 의원 환자 중 인종의 통계 정보를 계산
- 방법 1: 데이터베이스로부터 인종 정보를 전부 취득하도록 SQL 쿼리를 실행, 추출한 인종을 카운트하여 통계 정보를 냄
SELECT race FROM mimiciv_hosp.admissions
- 방법 2: 인종의 통계 정보를 계산하여 표시하도록 하는 SQL 쿼리를 실행
SELECT race, COUNT(*) FROM mimicic_hosp.admissions GROUP BY race ORDER BY count DESC;
- 방법 1: 데이터베이스로부터 인종 정보를 전부 취득하도록 SQL 쿼리를 실행, 추출한 인종을 카운트하여 통계 정보를 냄
개념 설계
개념 모델화
-
데이터 모델링: 전세계의 데이터를 데이터베이스화하는 것(데이터베이스의 구성요소를 갖게 하거나, 데이터의 검색 또는 갱신을 위한 조작 언어를 사용하는 것 등을 포함)
-
개념 모델
- 전세계의 데이터 구조와 제약(요구사양)을 기술한 것(ER 모델, UML 클래스 표 등이 대표적)
- 개념 모델링의 순서
- 요구사양을 작성
- 요구사항으로부터 개념 모델(ER 표 등)을 작성
Entity Relation(ER) Diagram
- 실세계를 실체와 관계로 표현하는 그림
- 구성 요소
- 엔터티 entity: 데이터베이스에 저장할 대상(명사), 사각형으로 표현
ex: 학생, 과목
- 관계 relationship: 두 엔터티 간의 행위나 연결(동사)을 명시, 마름모로 표현
ex: 학생이 과목을 이수함
- 속성: 실체와 관계에 부속되는 정보, 타원으로 표현
ex: 학생의 이름, 학번
- 엔터티 entity: 데이터베이스에 저장할 대상(명사), 사각형으로 표현
- 실체의 종류
- 리소스계: 사람, 물건, 장소 등 물리적으로 존재하는 것
- 이벤트계: 사건 등
- 관계와 관련하여
- 농도(관계의 수) Cardinality의 설정이 가능: 1대1, 1대다, 다대다 등
- 옵셔널리티 Optionality: 농도가 0일 수 있다면 ⚪️, 농도가 0일 수 없고 반드시 1개 이상의 관계를 가져야 하면 ⚫️으로 표현
약한 엔터티
- 자체적으로는 고유성을 가질 수 없고, 다른 개체와의 조합을 통해서만 고유성이 부여됨
- 이때의 ‘다른 개체’를 소유 엔터티 Owner Entity라고 함
식별 관계(ID 관계)
- 소유 엔터티와 약한 엔터티 간의 관계
- 속성은 부여하지 않으며, 필요한 경우 약한 엔터티 측에서 정의함
IS-A 관계
- 어떤 개체가 다른 개체의 하위 유형임을 나타내는 관계로, ‘A is a B’ 형식의 관계
- 하위 개체는 상위 개체의 속성을 상속받으면서, 자신만의 특수한 속성도 가짐
- 자식에서 부모로 올라가면 일반화, 부모에서 자식으로 내려가면 특수화
자기참조
- 어떤 엔터티로부터 자기 자신의 엔터티를 참조
- 이때 옵셔널리티는 ⚪️
삼항 관계 3項(三つ組)関連型
- 두 개의 항만으로는 표현할 수 없는 관계