관계형 데이터베이스와 테이블
관계형 데이터베이스에서 관계란 행과 열의 특성에 맞추어 데이터를 저장한 테이블 하나하나를 의미합니다. 여러 테이블의 구성과 관계를 잘 규정하고 관리하는 것이 관계형 데이터베이스에서 데이터를 관리하는 핵심입니다.
관계형 데이터베이스에서 테이블은 관계(relation), 행은 튜플(tuple) 또는 레코드(record) 그리고 열은 속성을 의미하는 애트리뷰트(attribute) 또는 필드(field)라고 합니다.
조회: 가장 중요한 기능
조회를 위해서는 데이터를 구분할 수 있는 대표하는 값이 필요하다. -> 키값🔑
키는 하나의 테이블을 구성하는 여러 열 중에서 특별한 의미를 지닌 하나 또는 여러 열의 조합을 의미

레코드를 대표할 수 있는 값의 후보군
| 회원명 | 주민번호 | 전화번호 | 주소 |
|---|---|---|---|
| 홍길동 | 1111 | 010-0000-0000 | 서울 |
가능한 키 값(중복 되지 않는)
🔽
주민번호
전화번호
회원명 + 주소 + 전화번호
기본키를 선택하고싶은데 마땅한 선택지가 없을때(적합하지 않은 경우) 대체키로 사용
회원
| 회원명 | 아이디 |
|---|---|
| 김수한 | user01 |
| 홍길동 | user02 |
게시글
| 게시글번호 | 제목 | 내용 | 아이디 |
|---|---|---|---|
| 1 | 제목1 | 내용1 | user01 |
게시글에 회원명을 바꾸어도 회원테이블의 회원 이름은 바뀌지 않는다 -> 데이터 불일치가 발생
유일하게 공유할 수 있는 값은 -> 아이디
회원명으로 조회하지 말고 게시글 테이블의 아이디라는 공통적인 값을 통해서 회원 테이블의 회원명을 조회 하는 방법이 데이터의 무결성이 침해되지 않는다.
=>아이디: 외래키
🚫회원테이블에서 회원을 삭제했을시 게시글에 해당 작성자가 존재하지 않게 된다.
따라서 데이터의 무결성을 지키기 위해 참조무결성 제약조건이 존재한다.
🔽
회원테이블 -> 부모, 게시글 테이블 -> 자식 테이블( 외래키가 있는 쪽이 자식 테이블 )
부모의 레코드를 참조하는 자식 레코드가 있다면 부모의 데이터는 삭제하지 못하게 막아져있다.

CHAR(문자의 길이)
VARCHAR2(문자열 길이) ✨더 많이 쓰임✨
CLOB(Character Large OBject)
기타
DATE: 날짜, 시간
📌무결성 제약조건
- 도메인 무결성 제약조건
- 자료형과 관련
- 컬럼에는 지정된 자료형만 데이터 허용
- 개체 무결성 제약조건
- 기본키 제약조건
- 중복X, NULL 미허용(비어있는 값도 미허용)
- 참조 무결성 제약조건
- 외래키 제약조건
- 부모 레코드에 자식 레코드(외래키가 있는쪽)가 있는 경우 부모 레코드 삭제 제한
객체는❔ 오라클 데이터베이스 내에서 데이터를 저장하고 관리하기 위한 논리 구조를 가진 구성 요소

1) 테이블(table)
2) 인덱스(index): 목차
3) 뷰(view): 가상 테이블
4) 시퀀스(sequence): 숫자의 증감번호 부여 객체
5) 프로시저(procedure): 저장 프로그램
6) 함수(function)
7) 패키지(package)
8) 트리거(trigger)
기존 SQL만으로 이를 구현하는 것은 다소 한계가 있다.
그래서 오라클 데이터베이스는 데이터 관리를 위해 별도의 프로그래밍 언어를 제공하는데 이를 PL/SQL(Procedural Language extension to SQL)이라고 한다.
오라클 데이터베이스 프로그래밍이라고 하면 SQL문과 PL/SQL을 사용하여 프로그램울 제작하는 것을 의미한다.
변수, 조건문, 반복문 등을 사용할 수 있음