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

Benjamin·2025년 3월 19일

1. 테이블 (Table)

테이블은 데이터를 저장하는 기본 단위이다. 각 테이블은 행(row)열(column)로 구성된다. 행은 개별적인 데이터를 나타내고, 열은 데이터의 속성이나 특성을 나타낸다.

학생 테이블 예시:

학번이름나이전공
1001김철수21컴퓨터공학
1002이영희22전자공학
1003박민수23기계공학

2. 주키 (Primary Key)

주키는 테이블에서 각 행을 고유하게 식별하는 열이다. 주키 값은 유일해야 하며, 중복될 수 없다. 예를 들어, 학생 테이블에서는 "학번"이 주키 역할을 한다.

학생 테이블 예시 (학번이 주키):

학번이름나이전공
1001김철수21컴퓨터공학
1002이영희22전자공학
1003박민수23기계공학

학번은 각 학생을 고유하게 식별하는 값이다.


3. 외래키 (Foreign Key)

외래키는 다른 테이블의 주키를 참조하는 열이다. 외래키는 두 테이블 간의 관계를 정의하는 데 사용된다. 예를 들어, "학생" 테이블과 "수업" 테이블이 있을 때, "수업" 테이블에서 "학번"을 외래키로 사용하여 "학생" 테이블과 연결할 수 있다.

학생 테이블:

학번이름나이전공
1001김철수21컴퓨터공학
1002이영희22전자공학
1003박민수23기계공학

수업 테이블 (학번을 외래키로 사용):

수업번호수업명학번
101데이터베이스1001
102알고리즘1002
103기계학습1003

수업 테이블의 "학번"은 "학생" 테이블의 주키를 참조하는 외래키이다.


4. 인덱스 (Index)

인덱스는 테이블에서 데이터를 빠르게 검색할 수 있도록 도와주는 데이터 구조이다. 예를 들어, 학생 테이블에서 "이름"을 기준으로 검색할 때 인덱스를 사용하면 더 빠르게 결과를 찾을 수 있다.

학생 테이블 예시 (인덱스 적용 가정):

학번이름나이전공
1001김철수21컴퓨터공학
1002이영희22전자공학
1003박민수23기계공학

"이름" 열에 인덱스를 적용하면 "이름"을 기준으로 빠르게 검색할 수 있다.


5. 뷰 (View)

뷰는 하나 이상의 테이블에서 데이터를 조회한 결과를 가상의 테이블처럼 제공하는 객체이다. 뷰는 실제 데이터를 저장하지 않으며, 데이터를 실시간으로 조회할 때 사용된다.

학생 테이블 예시:

학번이름나이전공
1001김철수21컴퓨터공학
1002이영희22전자공학
1003박민수23기계공학

"학생전공뷰" (뷰 예시):

이름전공
김철수컴퓨터공학
이영희전자공학
박민수기계공학

위의 뷰는 학생 테이블에서 "이름"과 "전공"만을 추출한 가상의 테이블이다.


6. 스키마 (Schema)

스키마는 데이터베이스의 구조를 정의하는 청사진이다. 스키마에는 데이터베이스 내의 모든 객체들, 예를 들어 테이블, 뷰, 관계 등이 포함된다. 각 스키마는 논리적으로 관련된 데이터베이스 객체들을 그룹화한다.

스키마 예시:

  • 학생 스키마
    • 테이블: 학생
    • 열: 학번, 이름, 나이, 전공
  • 수업 스키마
    • 테이블: 수업
    • 열: 수업번호, 수업명, 학번 (외래키)

스키마는 데이터베이스의 구조적 요소를 그룹화하고 정의하는 역할을 한다.


7. 트리거 (Trigger)

트리거는 특정 이벤트가 발생할 때 자동으로 실행되는 저장 프로시저이다. 예를 들어, "학생" 테이블에 새로운 레코드가 삽입될 때 자동으로 "학생변경로그" 테이블에 기록을 추가하는 트리거를 설정할 수 있다.

학생 테이블 예시:

학번이름나이전공
1001김철수21컴퓨터공학
1002이영희22전자공학
1003박민수23기계공학

학생변경로그 테이블 (트리거 예시):

변경시간변경된학번변경내용
2025-03-20 10:301001추가

학생 테이블에 새로운 데이터가 추가될 때마다 트리거가 실행되어 "학생변경로그" 테이블에 변경 내용이 기록된다.


8. 저장 프로시저 (Stored Procedure)

저장 프로시저는 미리 정의된 SQL 쿼리 집합을 저장해 두고 필요할 때 호출하여 실행할 수 있는 객체이다. 예를 들어, 학생 정보를 삽입하는 저장 프로시저를 만들 수 있다.

저장 프로시저 예시:

CREATE PROCEDURE insert_student(IN student_id INT, IN name VARCHAR(50), IN age INT, IN major VARCHAR(50))
BEGIN
    INSERT INTO 학생 (학번, 이름, 나이, 전공)
    VALUES (student_id, name, age, major);
END;

이 저장 프로시저는 학생 정보를 삽입하는 SQL 쿼리를 저장하여, 언제든지 호출하여 사용할 수 있다.


9. 제약조건 (Constraints)

제약조건은 데이터가 특정 규칙을 준수하도록 강제하는 규칙이다. 예를 들어, "학번" 열에 UNIQUE 제약조건을 설정하여 중복된 값이 들어가지 않도록 할 수 있다.

학생 테이블 예시 (제약조건 적용):

학번이름나이전공
1001김철수21컴퓨터공학
1002이영희22전자공학
1003박민수23기계공학

여기서 "학번" 열에는 UNIQUE 제약조건이 적용되어 중복된 학번을 삽입할 수 없다.

0개의 댓글