관계형 데이터베이스 기본
관계형 데이터베이스(Relational Database, RDB)는 데이터를 행과 열로 구성된 테이블(관계, Relation)에 저장하고, 공통된 키와 업무 규칙으로 관련 정보를 연결합니다. DBMS(Database Management System)는 데이터베이스의 저장·검색·변경·권한·동시 접근을 관리하는 소프트웨어입니다. Oracle Database, PostgreSQL, MySQL 등이 관계형 DBMS의 예입니다. 데이터가 모인 저장소인 데이터베이스와 이를 관리하는 DBMS는 구분해서 기억합니다.
박물관 전시 예약 서비스를 생각해 봅시다. 방문객의 이름과 이메일은 VISITOR에, 실제 방문 예약은 EXHIBIT_RESERVATION에 저장합니다. 방문객은 예약을 여러 번 할 수 있으므로 두 테이블은 1:N 관계이고, 예약 테이블의 VISITOR_ID가 방문객 테이블의 기본키를 참조하는 외래키(FK)가 됩니다. 그래서 같은 방문객의 이름을 예약마다 반복 저장할 필요가 없습니다.
||--o{는 1 대 0..N을 나타냅니다.엑셀의 여러 시트를 연결한 모습과 비슷하지만, RDBMS는 자료형·제약조건·권한·트랜잭션을 DBMS가 직접 관리한다는 점이 다릅니다. 또 FK 제약이 없어도 조건식만으로 조인할 수 있어서, 조인에 PK·FK가 꼭 필요한 것은 아닙니다.
| 장점 | 뜻 | 무엇으로 실현하나 |
|---|---|---|
| 데이터 독립성 | 구조를 바꿔도 프로그램 영향이 적음 | 3단계 스키마 |
| 중복 최소화 | 같은 사실을 한 곳에만 저장 | 정규화 설계 |
| 무결성 | 잘못된 값·참조를 막음 | PK·FK·CHECK 등 제약조건 (DDL) |
| 보안 | 사용자별 접근 권한 | GRANT·REVOKE (DCL) |
| 동시성 | 여러 사용자가 동시에 안전하게 사용 | 트랜잭션·잠금 (TCL) |
단, 관계형 DB라고 중복이 저절로 없어지거나 조회가 항상 빠른 것은 아닙니다. 장점은 올바른 설계·제약조건·인덱스·트랜잭션을 써야 실현됩니다.