[DB] 관계형/ 오라클 데이터베이스

예지성준·2024년 5월 3일

DB

목록 보기
2/19
post-thumbnail

📁관계형 데이터베이스의 구성 요소

테이블

  • 데이터를 2차원 표 형태로 저장하고 관리
  • 표형태의 데이터 저장 공간을 테이블(table)이라고 합니다.
  • 가로줄을 행(row), 세로줄을 열(column)이라고 부릅니다.
    • 행: 레코드, 튜플 ..
    • 열: 컬럼, 필드 ..

관계형 데이터베이스와 테이블

관계형 데이터베이스에서 관계란 행과 열의 특성에 맞추어 데이터를 저장한 테이블 하나하나를 의미합니다. 여러 테이블의 구성과 관계를 잘 규정하고 관리하는 것이 관계형 데이터베이스에서 데이터를 관리하는 핵심입니다.

관계형 데이터베이스에서 테이블은 관계(relation), 행은 튜플(tuple) 또는 레코드(record) 그리고 열은 속성을 의미하는 애트리뷰트(attribute) 또는 필드(field)라고 합니다.

특별한 의미를 지닌 열, 키

  • 조회: 가장 중요한 기능
    조회를 위해서는 데이터를 구분할 수 있는 대표하는 값이 필요하다. -> 키값🔑

  • 키는 하나의 테이블을 구성하는 여러 열 중에서 특별한 의미를 지닌 하나 또는 여러 열의 조합을 의미

1. 기본키(Primary Key)

  • 여러 키 중에서 가장 중요한 키로서 한 테이블 내에서 중복되지 않는 값만 가질 수 있는 키
  • NULL ❌
  • 후보키 중에서 선택한 대표키
  • 복합키
    • 하나의 값으로 레코드를 대표하기가 어려운 경우 여러 열을 조합하여 기본키 역할을 할 수 있게 만든 키
      ex) 회원명 + 주소 + 전화번호

2. 후보키

  • 레코드를 대표할 수 있는 값의 후보군

    • 보조키: 후보키 중에서 기본키로 지정되지 않은 열
    회원명주민번호전화번호주소
    홍길동1111010-0000-0000서울

가능한 키 값(중복 되지 않는)
🔽

주민번호
전화번호
회원명 + 주소 + 전화번호

3. 대리키

기본키를 선택하고싶은데 마땅한 선택지가 없을때(적합하지 않은 경우) 대체키로 사용

  • 증감번호 같은 형식으로 대리하는 키
    ex) 회원번호, 게시글 번호, ...

4. 외래키

  • 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로 지정된 키를 의미함
  • 참조 무결성 제약조건
    • 외래키가 있는 쪽이 자식테이블
    • 부모 테이블에 있는 레코드를 참조하는 자식 레코드가 있으면 부모 테이블 레코드 삭제 불가능

회원

회원명아이디
김수한user01
홍길동user02

게시글

게시글번호제목내용아이디
1제목1내용1user01

게시글에 회원명을 바꾸어도 회원테이블의 회원 이름은 바뀌지 않는다 -> 데이터 불일치가 발생

유일하게 공유할 수 있는 값은 -> 아이디
회원명으로 조회하지 말고 게시글 테이블의 아이디라는 공통적인 값을 통해서 회원 테이블의 회원명을 조회 하는 방법이 데이터의 무결성이 침해되지 않는다.

=>아이디: 외래키

🚫회원테이블에서 회원을 삭제했을시 게시글에 해당 작성자가 존재하지 않게 된다.

따라서 데이터의 무결성을 지키기 위해 참조무결성 제약조건이 존재한다.
🔽
회원테이블 -> 부모, 게시글 테이블 -> 자식 테이블( 외래키가 있는 쪽이 자식 테이블 )

부모의 레코드를 참조하는 자식 레코드가 있다면 부모의 데이터는 삭제하지 못하게 막아져있다.


오라클 데이터베이스

자료형 : 도메인 무결성 제약조건

CHAR(문자의 길이)

  • CHAR(40): 40바이트 고정 공간 할당
    문자가 AB: 2자로 입력해도 40 바이트 공간을 고정으로 할당

VARCHAR2(문자열 길이) ✨더 많이 쓰임✨

  • 최대 문자열 길이 만큼 바이트 공간 생성
    • 문자열 길이가 짧으면 가변적으로 작게 생성
    • VARCHAR2(40): 문자열이 2자이면 2바이트 만큼만 할당
  • 보통 한줄 텍스트를 저장할때 사용

CLOB(Character Large OBject)

  • 여러줄 텍스트를 저장할때 주로 사용

기타
DATE: 날짜, 시간

  • 날짜와 시간 관련된 함수, 연산기능 사용가능, 형식화

📌무결성 제약조건

  1. 도메인 무결성 제약조건
  • 자료형과 관련
  • 컬럼에는 지정된 자료형만 데이터 허용
  1. 개체 무결성 제약조건
  • 기본키 제약조건
  • 중복X, NULL 미허용(비어있는 값도 미허용)
  1. 참조 무결성 제약조건
  • 외래키 제약조건
  • 부모 레코드에 자식 레코드(외래키가 있는쪽)가 있는 경우 부모 레코드 삭제 제한

객체

객체는❔ 오라클 데이터베이스 내에서 데이터를 저장하고 관리하기 위한 논리 구조를 가진 구성 요소

1) 테이블(table)
2) 인덱스(index): 목차

  • 검색에 최적화된 구조로 구성

3) 뷰(view): 가상 테이블

4) 시퀀스(sequence): 숫자의 증감번호 부여 객체

5) 프로시저(procedure): 저장 프로그램

  • 독립적인 함수 프로그램
  • 반환값 X

6) 함수(function)

  • 반환값 O

7) 패키지(package)

  • 비슷한 함수, 프로시저의 묶음

8) 트리거(trigger)

  • 특정 동작 발생시 실행되는 함수
  • INSERT, DELETE, UPDATE... 이런 동작시 실행되는 함수 지정

PL/SQL

  • 기존 SQL만으로 이를 구현하는 것은 다소 한계가 있다.
    그래서 오라클 데이터베이스는 데이터 관리를 위해 별도의 프로그래밍 언어를 제공하는데 이를 PL/SQL(Procedural Language extension to SQL)이라고 한다.

  • 오라클 데이터베이스 프로그래밍이라고 하면 SQL문과 PL/SQL을 사용하여 프로그램울 제작하는 것을 의미한다.

  • 변수, 조건문, 반복문 등을 사용할 수 있음

profile
꽁꽁 얼어붙은 한강 위로 😺

0개의 댓글