1. 오라클 SQL - 데이터베이스

추승완·2025년 3월 14일

오라클 SQL

목록 보기
1/27
  • 데이터 : 관찰의 결과로 나타난 정량적 혹은 정성적인 실제값

  • 정보 : 데이터에 의미를 부여한것

  • 지식 : 사물이나 현상에 대한 이해

1-1. 데이터베이스 시스템(DBMS)

  • DBMS를 도입하여 데이터를 통합관리하는 시스템

  • DBMS가 설치되어 데이터를 가진 쪽을 서버(Server), 데이터를 요청하는 쪽을 클라이언트(Client)라고 한다.

  • DBMS서버가 파일을 다루며 데이터의 일관성 유지, 복구, 동시접근제어 등의 기능을 수행한다.

  • 데이터의 중복을 줄이고 데이터를 표준화하며 무결성을 유지한다.

1-2. DBMS 구성

스키마

  • 스키마 : 데이터구조와 제약조건에 대한 명세를 기술한 것

  • 데이터 구조를 표현하는 개체, 개체들의 특성을 표현하는 속성, 이들간에 존재하는 관계에 대한
    정의와 이들이 유지해야 할 제약조건이 포함

3단계 데이터베이스 구조

외부단계

  • 일반 사용자나 응용프로그래머가 접근하는 계층

  • 전체 데이터베이스중에서 하나의 논리적인 부분을 의미한다.

  • 여러 개의 외부스키마가 있을 수 있다.

  • 외부스키마는 서브스키마라고 부르며, 뷰의 개념이라고 생각하면 된다.

개념단계

  • 전체 데이터베이스의 정의를 의미

  • 통합조직별로 하나만 존재하며 DBA가 관리한다.

  • 하나의 데이터베이스에는 하나의 개념스키마가 있다.

  • 개념스키마는 저장장치에 독립적으로 기술되며, 데이터와의 관계, 제약사항, 무결성에 대한 내용이 포함된다.

내부단계

  • 물리적 저장장치에 데이터베이스가 실제로 저장되는 방법의 표현

  • 내부스키마는 하나이며, 인덱스, 데이터레코드의 배치방법, 데이터압축등에 관한 사항이 포
    함된다.

외부/개념매핑

  • 사용자의 외부스키마와 개념스키마간의 매핑으로 외부스키마의 데이터가 개념스키마의 어느 부분에 해당되는지 대응

개념/내부매핑

  • 개념스키마와 내부스키마의 물리적장치 어디에 어떤 방법으로 저장되는지 대응

데이터 언어

데이터정의어(DDL : Data Definition Language)

  • 데이터베이스를 정의하거나 그 정의를 수정할 목적으로 사용하는 언어

  • 데이터베이스 스키마를 컴퓨터가 이해할 수 있게끔 기술하는데 사용

데이터조작어(DML : Data Manipulation Language)

  • 사용자로 하여금 데이터를 처리할 수 있게 하는 도구

  • 데이터의 검색, 삽입, 삭제, 변경 등을 포함

데이터제어어(DCL : Data Control Language)

  • 데이터 제어를 정의하고 기술하는 언어

  • 불법적인 사용자로부터 데이터를 보호하기 위한 데이터보안, 데이터정확성을 위한 무결성,
    시스템장애에 대비한 데이터회복과 데이터베이스의 동시접근을 가능하게 하는 명령어들을 포함한다.

  • 데이터관리 목적으로 데이터베이스 관리자가 사용

1-4. 관계 데이터 모델

릴레이션 스키마

  • 릴레이션 스키마 : ‘도서번호’와같이각열들의이름과, 속성(애트리뷰트(ATTRIBUTE))을 가짐

  • 애트리뷰트(ATTRIBUTE) : 릴레이션 스키마가 가지고 있는 속성

  • 도메인(DOMAIN) : 속성들이 가질 수 있는 값들의 범위가 지정되어 있는 집합

  • 차수(DEGREE) : 릴레이션 스키마에서 애트리뷰트들은 적어도 1개 이상을 가져야 하며 이 애트리뷰트의 수를 말함

릴레이션 특징

  • 투플의 유일성

  • 투플의 무순서

  • 속성의 무순서

  • 속성의 원자성

키 종류

키란?

  • 테이블에서 튜플을 유일하게 식별할 수 있는 속성 혹은 속성들의 집합
  • 테이블은 중복된 튜플을 허용하지 않기 때문에 각각의 튜플에 포함된 속성들 중 어느 하나(혹은 하나이상)는 값이 달라야 함
  • 키가 되는 속성 (혹은 속성의 집합)은 반드시 값이 달라서 튜플들을 서로 구별할 수 있어야 함

1. 슈퍼키

  • 튜플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성들의 집합

  • 슈퍼키는 유일성만 만족하면 슈퍼키가 될 수 있음

  • 예를 들어 고객(고객번호, 이름, 주민번호, 주소, 핸드폰 번호) 릴레이션이 있다고 가정할 때
    슈퍼 키는 (고객번호), (주민번호, 이름, 주소), (고객번호, 이름, 주소, 핸드폰번호) 등이 될 수 있다.
    속성 값이 많아질 수록 만들어질 수 있는 슈퍼키는 점점 많아짐

2. 후보키

  • 기본 키가 될 수 있는 후보들이며 유일성과 최소성을 동시에 만족해야 함

  • 테이블은 중복된 튜플을 허용하지 않기 때문에 각각의 튜플에 포함된 속성들 중 어느 하나(혹은 하나이상)는 값이 달라야 함

  • 키가 되는 속성(혹은 속성의 집합)은 반드시 값이 달라서 튜플들을 서로 구별할 수 있어야 함

3. 기본키

  • 후보 키 중 특별히 선정된 키로, 중복된 값을 가질 수 없음

  • 후보 키의 성질을 갖기 때문에 유일성과 최소성을 가지며 튜플을 식별하기 위해 반드시 필요한 키

  • NULL 값을 가질 수 없으며 튜플에서 기본 키로 설정된 속성엔 NULL 값이 있어서는 안됨

4. 대체키

  • 후보 키 중에서 선정된 기본 키를 제외한 나머지 후보 키를 의미

5. 외래키

  • 다른 테이블, 릴레이션의 기본 키를 참조하는 속성 또는 속성들의 집합을 의미

  • 테이블, 릴레이션 간의 관계를 표현할 때 사용

  • 한 테이블, 릴레이션의 속한 속성 A와 참조 테이블, 릴레이션의 기본 키인 B가 동일한 도메인 상에서 정의되었을 때 속성 A를 외래키라고 함

  • 참조 테이블의 기본 키와 동일한 키 속성을 지님

제약조건

1. 도메인 무결성 제약조건(Domain Integrity Constraint)

  • 도메인 제약이라고도 하며, 릴레이션 내의 튜플들이 각 속성의 도메인에 지정된 값만을 가져야
    한다는 조건

  • 속성에 들어갈 수 있는 데이터 타입을 지정할 수 있고, 기본값을 지정할 수 있음

  • 저장되는 값들의 범위도 지정할 수 있으며 NULL 구문을 통해 속성 값으로 NULL을 허용하거나 허용 하지 않도록 할 수 있음

2. 개체 무결성 제약조건(Object Integrity Constraint)

  • 기본키 제약이라고도 하며, 릴레이션은 기본키를 지정하고 그에 따른 무결성 원칙을 지켜야한다는 조건

  • 기본키는 NULL값을 가져서는 안 되며 릴레이션 내에 오직 하나의 값만 존재해야 한다
    (Not Null, No Duplicate)

3. 참조 무결성 제약조건(Reference Integrity Constraint)

  • 외래키 제약이라고도 함

  • 테이블 간의 참조 관계를 선언하는 제약조건

  • 외래 키의 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 함

profile
안녕하세요. 개발, 해보겠습니다

0개의 댓글