레코드는 전체 데이터 항목을 나타내는 행
엔트리는 해당 레코드 내에서 개별 데이터 요소
제1정규형
모든 테이블의 컬럼은 원자값(분할 불가능한 값)을 가져야 하며,
각 레코드는 고유해야 함
또한, 모든 엔트리는 한 가지 타입의 데이터만 포함해야 함
제2정규형
1NF를 만족하며,
모든 Non-key 속성이 테이블의 기본키에 완전히 종속되어야 함
복합 키를 가진 테이블에서
각 컬럼이 테이블의 전체 기본 키가 아닌
일부에만 종속된 경우를 제거
제3정규형
2NF를 만족하며,
모든 Non-key속성이 기본키에만 종속되어야 하며,
이행적 종속을 제거함
즉, Non-key 속성이 다른 Non-key 속성에 종속되지 않아야 함
제4정규형
제5정규형
보이스-코드 정규형
제1정규형 위반
1.반복 그룹
하나의 레코드 안에 여러 값을 가지는 반복 그룹이 있는 경우
예를 들어, 학생 레코드 안에 여러 개의 전화번호나 주소가 있는 경우
2.비원자적 열
열이 원자적이지 않고 여러 개의 하위 값으로 구성된 경우
예를 들어, 하나의 열에 "도시, 주"와 같이 여러 정보가 함께 들어 있는 경우
CREATE TABLE patient_syj(
patient_id SERIAL PRIMARY KEY,
patient_name VARCHAR(100),
gender VARCHAR(10),
date_of_birth DATE,
pa_contact_info VARCHAR(100)
)
CREATE TABLE doctor_syj(
doctor_id SERIAL PRIMARY KEY,
doctor_name VARCHAR(100),
major VARCHAR(100),
doc_contact_info VARCHAR(100)
);
CREATE TABLE appointment_syj(
appointment_id SERIAL PRIMARY KEY,
foreign key (patient_id) references patient_syj,
foreign key (doctor_id) references doctor_syj,
appointment_date DATE,
appointment_time TIME
)
CREATE TABLE record_syj(
record_id SERIAL PRIMARY KEY,
foreign key (patient_id) references patient_syj,
treatment_date DATE,
diagnosis VARCHAR(500),
prescription VARCHAR(500)
);
POSTGRESQL에서 테이블 2개를 생성하는 쿼리문을 작성해줘(각자 primary key가 존재하고 2번째 테이블은 첫번째 테이블의 primary key를 foreign key로 가지도록해줘)
ChatGPT
다음은 두 개의 테이블을 생성하고 두 번째 테이블이 첫 번째 테이블의 primary key를 foreign key로 가지도록 하는 쿼리문입니다. 첫 번째 테이블은 "patients"이고 두 번째 테이블은 "visits"입니다. "patients" 테이블의 primary key는 "patient_id"이고, "visits" 테이블의 foreign key는 "patient_id"입니다.
sql
Copy code
-- 첫 번째 테이블 생성
CREATE TABLE patients (
patient_id SERIAL PRIMARY KEY,
patient_name VARCHAR(100),
gender VARCHAR(10),
date_of_birth DATE,
pa_contact_info VARCHAR(100)
);
-- 두 번째 테이블 생성
CREATE TABLE visits (
visit_id SERIAL PRIMARY KEY,
visit_date DATE,
visit_purpose VARCHAR(255),
patient_id INTEGER REFERENCES patients(patient_id)
);
위의 쿼리에서 "visits" 테이블의 "patient_id" 열은 "patients" 테이블의 "patient_id" 열을 참조하도록 설정되어 있습니다. 이렇게 설정함으로써 "visits" 테이블의 각 행은 "patients" 테이블에 있는 환자의 primary key를 참조할 수 있게 됩니다.