데이터베이스(실기)
데이터베이스의 개념
- 데이터베이스란?
- 어느 한 조직에서 업무 처리를 위해 공용으로 사용하기 위해 통합 및 저장된 운영 데이터의 집합
- 통합된 데이터
- 중복을 최소화한 데이터의 집합
- 저장된 데이터
- 사용자가 언제든지 이용할 수 있도록 저장된 데이터의 집합
- 공용 데이터
- 여러 사용자가 공유할 수 있도록 만든 데이터의 집합
- 운영 데이터
- 중복 최소화 및, 여러 사용자간에 공유함에 있어 문제가 발생하지 않도록 관리를 필요로하는 데이터
- 이용가치가 있는 데이터의 집합
- 데이터베이스의 특징
- 계속적인 변화
- 항상 최신 정보를 유지할 수 있도록 삽입 삭제 갱신이 이루어짐
- 동시 공유
- 여러 사용자가 동시에 접근하여 이용
- 실시간 접근성
- 질의(query)에 대해 실시간 처리 및 응답
- 내용에 의한 참조
- 데이터의 물리적 주소나 위치가 아닌 데이터 내용으로 검색
- 데이터 중복의 최소화
- 동일 데이터의 중복성을 최소화 해야함
- 계속적인 변화
- 데이터 베이스의 구성요소
- 개체, 속성, 관계로 이루어짐
- 개체
- 현실 세계의 대상체
- 실세계 존재하는 유형 혹은 무형 정보의 대상, 서로 구별이 되는 하나의 대상
- 개체는 하나 이상의 속성으로 구성
- 속성
- 데이터베이스를 구축하는 가장 작은 논리 단위
- 개체의 특성, 상태 기술
- 속성만으로는 개체를 구분하기 어렵다
- 관계
- 두 개이상의 개체 사이 또는 속성 간의 상호 연관성을 말함
- 관계의 종류
- 1 : 1
- 두 개체 간의 구성 원소가 각각 하나씩 대응되는 경우
- 1 : N
- 두 개체 간의 구성 원소 중 하나의 원소와 여러 개의 원소가 대응되는 경우
- N : M
- 두 개체 간의 구성 언소들이 상호 여러 개의 원소들과 대응되는 경우
- 1 : 1
- 시스템 카탈로그
- 데이터베이스에 저장되어 있는 테이블, 인덱스, 뷰, 제약조건, 사용자 등 개체들에 대한 정보와 정보들 간의 관계를 저장 한 것
- 데이터 사전이라고도함
- 카탈로그에 저장된 데이터를 메타 데이터라 함
- 시스템 카탈로그 갱신은 사용자가 sql 문을 실행하면 시스템에 의해 자동적으로 이루어진다
데이터베이스 관리 시스템
- DBMS
- 데이터의 중복성과 종속성 등의 문제를 최소화하기 위함
- 사용자와 데이터베이스 간의 중계 역할을 한다
- 데이터 베이스의 내용을 정의 조작 제어
- 모든 사용자나 응용 프로그램들이 데이터 베이스를 공유할 수 있도록 관리 운영하는 소프트웨어 시스템
- DBMS 필수 기능
- 정의
- 저장될 데이터의 형태 구조등 데이터베이스 저장에 관한 여러 가지 사항을 정의하는 기능
- 조작
- 데이터베이스의 자료를 사용자가 이용할수 있도록 검색,갱신,삽입, 삭제하는 기능
- 제어
- 데이터의 정확성과 안정성 유지를 위한 관리 기능
- 데이터의 무결성 유지, 보안, 병행 수행 제어 제공
- 정의
- 데이터베이스 언어
- DDL
- 데이터베이스 구조를 정의 수정 삭제 등을 위해 사용되는 언어
- DML
- 데이터베이스 내의 자료를 검색,삽입,갱신,삭제하기 위해 사용되는 언어
- DCL
- 데이터베이스의 데이터에 대해 무결성 유지 병행 수행 제어, 보호와 관리를 위한 언어
- DDL
데이터베이스 구조(스키마)
- 데이터 베이스의 표현
- 논리적 구조
- 물리적 구조
- 스키마
- 데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술 정의한 것
- 내부스키마
- 물리적 저장장치 관점에서 본 데이터베이스의 물리구조
- 개념 스키마
- 논리적 관점에서 본 전체적인 데이터 구조
- 외부 스키마
- 전체 데이터 중 사용자가 사용하는 한 부분에서 본 논리구조를 말함
- 서브 스키마
- 데이터베이스 관리자(DBA)
- 데이터 베이스 구성요소를 결정
- 저장 구조와 접근 방법을 선정
- 보안, 권한 부여, 유효성 검사 등을 수행
- 스키마를 정의
- 예방 회복 절차 수립 등을 모색
- 무결성 유지를 위한 관리
- 데이터 관리자(DA)
- 기업이나 조직 내에서 데이터 정의와 체계화, 감독 및 보안 업무를 담당하는 관리자
데이터베이스 설계
- 데이터베이스 설계 과정
- 요구사항 분석 - 설계 - 구현 - 운영 및 개선(유지보수)
- 요구 사항 분석
- 데이터 베이스 정의, 명세서 작성
- 설계
- 개념적 설계 - 논리적 설계 - 물리적 설계
- 개념적 설계
- 구현할 데이터베이스 정함
- 데이터베이스 구성요소 결정
- 수행할 작업과 관계를 설계하는 과정
- E-R 모델 이용
- 논리적 설계
- 스키마 정의
- 개념적 설계에서 만들어진 구조를 데이터 모델로 변환하는 단계
- 물리적 설계
- 내부 저장 장치 구조와 접근 경로 등을 설계하는 과정
- 구현
- 설계 과정에서 얻어진 것을 토대로 실제 데이터 베이스를 만드는 과정
- 유지 봉수의 용이성, 간결 명료하게 구현해야함
- 데이터 아키텍쳐
- 기업의 데이터 측면에서 기업 시스템을 처음부터 끝까지 시스템의 본질인 데이터를 구조적 체계적으로 관리하고 설계하는 모든 과정을 말함
- 운영 및 개선(유지 보수)
- 구현된 데이터베이스를 실제로 운영하는 단계
E-R 모델
- E-R 모델
- 개념적 설계 단계에서 사용되는 설계 기법
- 데이터 베이스의 전반적인 구조를 이해하기 쉽도록 표현한 모델
관계 데이터 모델
관계 데이터 모델
- 자료의 저장 형태를 2차원 구조의 표로 표현하는 방법
관계 데이터 모델의 용어
- 릴레이션
- 자료 저장의 형태가 2차원 구조의 테이블로 표현
- 속성
- 릴레이션을 구성하는 각 열
- 튜플
- 릴레이션의 한 행을 구성하는 속성들의 집합
- Record
- 도메인
- 하나의 속성이 가질 수 있는 값들의 범위
- 릴레이션 스키마
- 릴레이션의 이름과 속성 이름의 집합
- 릴레이션 인스턴스
- 릴레이션에서 어느 시점까지 입력된 튜플들의 집합
- 차수(degree)
- 릴레이션을 구성하는 속성의 수
- 카디널리티
- 릴레이션에 입력된 튜플의 수
- 릴레이션
릴레이션의 특징
- 튜플들은 모두 상이하다
- 튜플들은 유일하며 순서가 없다
- 속성 간에도 순서가 없다
- 속성 값은 원자값으로 구성되며 분해가 불가능하다
Mapping Rule
- 개념적 데이터베이스 모델링 결과를 관계형 데이터 베이스 이론에 근거하여 데이터 베이스 구조로 변환하는 과정
- E-R 모델 –> 릴레이션
키와 무결성 제약 조건
키(KEY)
- 관계 데이터베이스에서 튜플 을 식별하기 위해 사용하는 속성이나 속성의 집합
- 데이터베이스의 참조 또는 검색 시에 사용
키의 종류
- 후보키
- 릴레이션에서 각 튜플을 유일하게 식별할 수 있는 속성이나 속성의 집합
- 유일성과 최소성을 모두 만족
- 기본키
- 후보키 중 튜플을 식별하기위해 특별히 선택된 키
- 중볼 될수 없으며, NULL 값이 올 수 없다.
- 유일성과 최소성을 만족해야함
- 대체키
- 후보키 중 기본키를 제외한 속성
- 외래키
- 하나의 테이블에서 원하는 자료를 얻지 못하는 경우 다른 테이블을 참조하기 위해 사용되는 속성, 외래 식별자
- NULL 가능
- 참조하는 릴레이션의 기본키와 같아야한다.
- 슈퍼키
- 한 릴레이션 내의 튜플들을 식별할 수 있는 후보키와 다른 속성들과의 모든 조합
- 최송성은 만족하지 않음
- 후보키
식별 관계와 비식별 관계
- 식별 관계
- 외래키가 기본키인 경우
- 비식별 관계
- 외래키가 일반속성인 경우
- 식별 관계
- 무결성 제약조건
- 개체 무결성
- 기본키는 NULL 값이 올 수 없으며, 중복 될 수 없음을 나타냄
- 개체 무결성은 개체를 식별하기 위해서 오류가 없도록 하기 위한 제약 조건
- 참조 무결성
- 외래키는 NULL 값이 올 수 있으며, 참조 릴레이션의 기본키와 같아야하는 제약조건
- 테이블 참조시 오류가 없도록 하기 위한 제약 조건
- 도메인 무결성
- 릴레이션에서 속성값의 범위가 정의된 경우 그 속성 값은 정해진 범위 이내의 값으로 구성해야하는 제약조건
- 고유 무결성
- 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우, 그 속성값은 모두 달라야한다
- NULL 무결성
- 특정 속성 값에 NULL이 올 수 없다는 조건이 주어진 경우, 그 속성 값은 NULL 값이 올 수 없다는 제약조건
- 키 무결성
- 하나의 릴레이션에는 최소한 하나의 키가 존재해야하는 제약 조건
- 개체 무결성
관계 데이터 연산
관계 대수
- 순수 관계 연산자
- select, project, join, division
- 일반 집합 연산자
- 합집합, 교집합, 차집합, 카디션 프로덕트
- 순수 관계 연산자
select
- 릴레이션에서 조건을 만족하는 수평적 부분집합(튜플)을 구하는 연산
- 조건을 만족하는 튜플들로 테이블을 만듬
project
- 릴레이션에서 수직접 부분 집합(속성의 값)을 구하는 연산으로 원하는 속성만 추출하기 위한 연산
join
- 두 테이블로부터 조건에 맞는 관련된 튜플들을 하나의 튜플로 결합하여 하나의 테이블로만드는 연산
- 동일 조인, 자연 조인, 외부 조인, 세타조인 등 여러가지 종류가 있다
- 동일 조인
- 관계 연산자 중 “=”만을 사용하여 조건을 표현
- 가장 기본이 되는 조인
- 중복이 되는 속성도 포함
- 자연 조인
- 동일 조인에서 중복되는 속성을 제거하여 표현
- 세타 조인
- 관계 연산자 중 “=”외의 연산자를 이용해 조건 수식을 표현하여 조인하는 연산
- 중복 속성도 표현
- 외부 조인
- 조건에 맞지 않는 튜플도 결과 테이블에 포함시켜 조인하는 방법
- 해당 장료가 없는 부분은 NULL 값이 된다
Division
- A와 B 테이블에서 B 테이블의 조건을 만족하는 튜플들을 테이블 A에서 추출하는 연산
- 연산에 사용된 속성은 결과에서 제외
- 관계 해석
- 릴레이션에서 결과를 얻기 위한 과정을 표현
- 연산자 없이 정의하는 방법을 이ㅛㅇ하는 비절차적 언어
- 튜플 관계 해석과 도메인 관계 해석이 있다.
- 표기 형식 : {결과값|조건}
Comment