데이버베이스
특정 조직의 여러 사용자들이
정보를 공유 + 공유된 정보를 사용을 위해 만들어진 데이터의 집합이다.
데이터 모델
데이터베이스를 단순 추상화하여 체계적으로 표현한 개념
객체 사이의 관계를 단순화한것
논리적으로 묘사하기 위한 도구
관계 데이터 모델
데이터 모델 중 하나, 테이블 형식. 릴레이션을 사용하자!
그냥 테이블을 쓰면 되는거 아니에요?
릴레이션은 테이블이지만 테이블은 릴레이션이 아니다.
테이블은 투플 값이 같아도 상관없지만 릴레이션은 같은 투플 값을 가질 수 없다.
투플이 뭐에요? 릴레이션은 뭐에요?
하단에 기재된 릴레이션의 특성을 읽으면 이해할 수 있습니다.
1. 릴레이션
<Database 01 - Class1>
학번 | 이름 | 애완동물 |
011 | 김가가 | 다람쥐 |
022 | 김나나 | 고양이 |
033 | 김다다 | 강아지 |
04 | 김라라 | 햄토리 |
1). 릴레이션 : table의 이름
2). 스키마 : 번호, 이름, 내용 (초록 부분)
3). 인스턴스 : 스키마를 제외한 01 ~ 햄토리 까지의 모든 내용
4). 투플 : 행
5). 카디날리티 : 행의 수 (총 4)
6). 에트리뷰트 : 열
7). 차수 : 열의 수 (총 3)
[1]. 릴레이션의 특성
- 한개의 에트리뷰트의 값은 모두 같은 도메인을 가진다.
- 한개의 릴레이션 안 같은 값의 투플은 존재하지 않는다.
- 에트리뷰트들은 서로 다른 이름을 가진다.
- 에트리뷰트는 단일값(원자값)를 가진다.
[2]. 릴레이션 키
: 각 투플을 고유하게 식벽할 수 있는 하나 이상의 에트리뷰트 모임
[3]. 외래 키
: 각 릴레이션 간 관계를 맺어줄 때 사용되는 키
<Database 02 - CGrade >
학번 | 과목 | 점수 |
011 | 국어 | 90 |
022 | 수학 | 80 |
033 | 과학 | 70 |
044 | 사회 | 60 |
1). 어떤 릴레이션의 기본키를 참조하는 에트리뷰트
Class1 의 학번(외래키)를 참조 / CGrade의 학번(기본키)으로 내용을 확인
<Database 03 - ClassFriend >
학번 | 이름 | 절친 |
011 | 김가가 | 022 |
022 | 김나나 | 033 |
033 | 김다다 | 044 |
04 | 김라라 | 011 |
2). 자체 릴레이션의 기본키를 참조
ClassFriend 의 절친(외래키)를 참조 / 학번(기본키)으로 내용을 확인
3). 기본키의 구성요소가 되는 외래 키
2. SQL
[1]. SQL의 개념과 종류
SQL은 데이터 관리를 위해 만들어진 언어 / 관계데이터모델과 수학이론을 기반으로 개발됨
1). 대화식 SQL
기본 문법을 사용하여 직접.....
2). 내포된 SQL
우리도 모르는 사이에 SQL을 많이 접하고 있는데(내포된 SQL형식)
대표적인게 회원가입
이름, 아이디, 비밀번호 등. 데이터베이스에 저장하기 위해서 사용하고있다.
SQL을 사용하기 위해서 명령어를 공부해볼까요?
[2]. SQL의 명령어
1). 데이터 정의어 (DDL)
스키마를 정의 , 수정 , 삭제하는데 사용
사용 명령어 : CREATE , ALTER , DROP
2). 데이터 조작어 (DML)
릴레이션의 데이터를 검색 , 삽입 , 삭제 , 수정하는데 사용
사용 명령어 : SELECT , INSERT , DELETE , UPDATE
● 특히 SELECT 문을 많이 사용한다.
3). 데이터 제어어 (DCL)
사용권한을 부여 , 삭제 등. 접근권한을 수정하는데 사용
사용 명령어 : GRANT , REVOKE
기타). 참조 무결성 제약조건
사용 명령어 : RESTRICT , SET NULL , SET DEFAULT , CASEADE
● 특히 CASEADE 같은 경우는 고약한게... 이걸로 엮여있으면 부모 - 자식 키 모두 영향을 준다.
. 모든 N의 수를 구하는 코드 ... 등등 이런것도 추가할 예정
SELECT count(*) AS N
FROM 릴레이션;