내가 또,, 또,,
CS 스터디를 시작함;
그렇지만 어쩔 수 없음
제대로 모르는 걸 어떡함?
공부 똑바로 안한 내 잘못 ㅇㅇ
이게 내 인생 마지막 CS 스터디였으면 해
그럼이제
용어 정리 렛츠고😎
2차원의 테이블
릴레이션의 각 행
레코드를 공식적으로 부르는 용어 == 행
릴레이션에서 이름을 가진 하나의 열
💡 릴레이션 == 릴레이션 스키마 + 릴레이션 인스턴스
릴레이션이름(애트리뷰트1, 애트리뷰트2, ... 애트리뷰트N)
아래 예시로는
학생정보 (학번, 이름, 단과대학, 전공학과, 이수학기)
릴레이션에서 이름을 가진 하나의 열
한 어트리뷰트에 나타날 수 있는 값들의 집합
CREATE DOMAIN 전공 학과 VARCHAR(10)
CREATE DOMAIN 이수 학기 INTEGER
애트리뷰트의 수
릴레이션 스키마에서 애트리뷰트들은 적어도 1개 이상을 가져야 함!
릴레이션의 행
각 투플은 서로 중복이 없어야 함
튜플의 수
카디날리티는 0일 수 있음
각 튜플을 고유하게 식별할 수 있는 하나 이상의 어트리뷰트들의 모임
한 릴레이션 내의 특정 튜플을 고유하게 식별하는 하나의 어트리뷰트 혹은 어트리뷰트들의 집합
== 유일성을 만족하는 속성 또는 속성들의 집합
➡️ 투플들을 고유하게 식별하는데 꼭 필요하지 않은 애트리뷰트들을 포함할 수 있음
각 투플을 고유하게 식별하는 최소한의 어트리뷰트들의 모임집합
= 유일성과 최소성을 만족하는 속성 또는 속성들의 집합
➡️ 꼭 필요한 최소한의 속성들로만 이루어진 키
즉, ‼️ 슈퍼키중에서 튜플을 유일하게 구별하기 위해 꼭 필요한 최소한의 속성들로만 이루어진 키
한 릴레이션에 후보 키가 두 개 이상 있으면 설계자 또는 데이터베이스 관리자가 이들 중에서 하나를 기본 키로 선정
(릴레이션에서 튜플을 구별하기 위해 여러 개의 후보키를 모두 사용할 필요는 없음)
기본키 선택 기준
- NULL 값 ❌
- 기본키로 선택된 속성에는 중복된 값이 저장될 수 없음
- 값이 자주 변경되지 않는 속성으로 구성된 후보키를 기본키로 선택하는 것이 좋음
💡 기본키 선정 과정은 대학에서 학생회장을 선발하는 과정과 유사함
대학에 다니는 학생들(슈퍼키) 중에서 학생회장이 될 만한 후보학생(후보키)를 추천한 다음, 지지를 많이 받은 한명의 학생(기본키)를 학생회장으로 임명하는 것!
기본 키가 아닌 후보 키
어떤 릴레이션의 기본 키를 참조하는 어트리뷰트