Database/Database

[Oracle] 관계형 데이터베이스란?

개발소 2024. 5. 20. 21:10

1. 데이터베이스(Database)

데이터(data)와 베이스(base)의 합성어다.

 

그렇다면 데이터는 무엇일까? 데이터는 어떤 필요에 의해 수집했지만 아직 특정 목적을 위해 평가하거나 정제하지 않은 값이나 사실 또는 자료 자체를 의미한다. 이러한 데이터를 가공하여 가치있는 것으로 만든 것을 정보(Information)이라고 한다.

 

데이터베이스데이터를 효율적으로 관리, 검색하고 특정 목적을 위해 여러 사람이 공유하여 사용할 수 있는 구조화한 데이터 집합이다. 그리고 데이터베이스의 데이터 조작과 관리를 극대화한 시스템 소프트웨어를 DBMS(DataBase Management System)이라고 한다. 데이터베이스와 DBMS는 굳이 구분하지 않는 편이다.

 

데이터의 종류

  • 구조적 데이터 (정형 데이터)
  • 비구조적 데이터 (비정형 데이터)
  • 반구조적 데이터 (반정형 데이터)

구조적 데이터는 테이블 형태로 정리된 데이터를 말한다. 구조적 데이터의 예로는 데이터베이스의 테이블, 엑셀의 워크시트, 장부의 표, CSV 같은 구분자가 있는 텍스트 파일 등이 있다.

비구조적 데이터는 정의된 데이터 모델이 없거나 정리되지 않은 정보를 말한다. 대표적으로 소셜 데이터, 전자메일, 사진, 영상 등이 있다.

반구조적 데이터는 위 둘의 절충안이다. XML, JSON 등이 있다.

 

JSON과 XML에 대한 정보는 이 글에서 자세히 확인할 수 있다.

https://develrepo.tistory.com/34

 

[CS] JSON과 XML

학습 PointJSONXML직렬화와 역직렬화<span style="fo..

develrepo.tistory.com

 

 

2. 데이터 모델

컴퓨터에 데이터를 저장하기 위해 단순화, 추상화하여 체계적으로 표현하는 방식을 정의한 개념 모형이다.

데이터의 구조(Schema)를 논리적으로 묘사하기 위해 사용되는 도구이다. 대표적으로 계층형, 네트워크형, 관계형, 객체 지향형 등이 있다.

 

계층형 데이터 모델

트리 구조를 활용하여 데이터를 계층별로 나눠 데이터를 관리하는 모델이다.

 

네트워크형 데이터 모델

그래프 구조를 기반으로 개체 간 관계를 표현한 모델이다.

 

객체 지향형 데이터 모델

데이터를 독립된 객체로 구성하고 관리하며, 상속 오버라이딩 등 객체 지향형 프로그래밍에서 사용되는 기능을 활용할 수 있는 모델이다.

 

관계형 데이터 모델

1970년 에드거 프랭크 커드가 제안한 모델로서 관계형 데이터베이스의 바탕이 되는 모델이다. 데이터 간 관계(relationship)에 초점을 둔다.

 

관계형 데이터 모델에서는 각 데이터의 독립적인 특성만을 규정하여 데이터를 묶음으로 나눈다. 그리고 중복이 발생할 수 있는 데이터는 릴레이션(relation)으로 정의한 후 중복된 데이터를 연결한다.

 

관계형 데이터 모델의 구성 요소

이름 설명
개체(entity) 데이터화하려는 사물이나 개념의 정보 단위. 테이블의 개념과 대응된다.
속성(attribute) 데이터의 가장 작은 논리적 단위. 데이터의 종류, 특성, 상태 등을 정의한다. 열의 개념과 대응된다.
관계(relationship) 개채와 개채, 혹은 속성 간의 연관성을 나타내기 위해 사용된다. 외래키 등으로 구현된다.

 

 

엔티티-관계 모델 (E-R 모델)

ERD(Entity Relationship Diagram)이라고도 한다. 다음과 같은 이점이 있다.

  • 정보를 명확한 형식으로 문서화
  • 정보 요구 사항의 범위를 쉽게 파악
  • 이해하기 쉬운 데이터베이스 설계용 그림 제공
  • 여러 응용 프로그램 통합을 위한 효과적인 프레임워크 제공

 

ERD를 표기하는 다양한 방법이 존재한다.

Barker 표기법, Chen 표기법, IE 표기법

 

 

3. 관계형 데이터베이스과 SQL

관계형 데이터 모델의 개념을 바탕으로 데이터를 관리하는 데이터베이스를 뜻한다. RDBMS라고도 부른다.

 

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

 

학번 이름 학년 전화번호  
20201212 홍길동 3 010-1234-5678
20194567 개발소 4 010-9876-1234
20228888 김이박 1 010-5656-7878

 

테이블

관계형 데이터베이스는 기본적으로 데이터를 2차원 표 형태로 저장하고 관리한다. 가로줄을 행(row) 세로줄을 (column)이라고 한다. 테이블은 관계(relation), 튜플(tuple), 레코드(record)라고도 부른다.

 

저장하려는 하나의 개체를 구성하는 여러 값을 가로로 늘어뜨린 형태이다.

 

저장하는 데이터를 대표하는 이름과 공통 특성을 정의한다. 속성을 뜻하는 애트리뷰트(attribute)나 필드(field)라고도 부른다.

 

열쇠라는 의미에서 비롯된 용어이다. 데이터를 구별할 수 있는 값이라는 뜻이다.

  • 기본키(primary key): 한 테이블에서 중복되지 않은 값만 가질 수 있는 키, NULL 값을 가질 수 없다.
  • 외래키(foreign key): 특정 테이블에 포함되어 있으면서 다른 테이블의 기본키로도 지정된 키. 
  • 복합키(composite key):여러 열을 조합하여 기본키의 역할을 할 수 있게 만든 키.

 

 

SQL은 Structured Ouery Language의 약자로서 관계형 데이터베이스의 데이터를 다루는데 사용되는 데이터베이스 질의 언어이다.

 

SQL은 다음과 같이 분류할 수 있다.

종류 설명
데이터 조작어 DML, Data Manipulation Language 테이블의 데이터를 저장, 수정 삭제하는 명령어
데이터 정의어 DDL, Data Definition Language 데이터 관리를 위해 여러 객체를 생성, 수정, 삭제하는 명령어
데이터 제어어 DCL, Data Control Language 데이터 사용 권한과 관련된 명령어
트랜잭션 제어어 TCL, Transaction Control Language 트랜잭션 데이터의 저장이나 취소와 관련된 명령어

 

 

 

오라클 데이터베이스

오라클 데이터베이스란 오라클 사가 만든 DBMS 제품으로, 대표적인 상용 관계형 데이터베이스이다.

 

자료형

자료형 설명
VARCHAR(20) 4000byte만큼의 가변 길이 문자열 데이터를 저장할 수 있다.
NUMBER ±  38자리의 숫자를 저장할 수 있다.
NUMBER(p, s)와 같이 표기할 경우 s자리만큼 소수점 이하 자릿수를 표현하고, 이 소수점 자리를 포함한 전체 p자리만큼 숫자 데이터를 저장한다.
DATE 날짜 형식을 저장하기 위한 자료형
CHAR(길이) 4000byte만큼 고정 길이 문자열 데이터를 저장할 수 있다.
BLOB 최대 크기 4GB 대용량 이진 데이터 저장
CLOB 최대 크기 4GB 대용량 텍스트 데이터 저장
BFILE 최대 크기 4GB의 대용량 이진 데이터 파일 저장

 

자료형은 테이블을 구성하는 열에 지정한다. 

 

 

PL/SQL

Procedural Language extension to SQL이라는 뜻으로, 오라클 데이터베이스가 별도로 제공하는 프로그래밍 언어이다.

SQL에서 사용할 수 없는 변수, 반복문 등을 사용해 프로그래밍 요소로 데이터를 관리할 수 있다.