데이터베이스의 정의
- 통합 데이터 : 검색의 효울성을 위해 중복이 최소화된 데이터
- 저장 데이터 : 접근 가능한 저장 매체에 저장된 데이터
- 운영 데이터 : 조직의 목적을 위해 존재 가치가 확실하고 필요한 데이터
- 공유 데이터 : 여러 프로그램들이 공동으로 사용하는 데이터
데이터베이스의 특징
실시간 접근성 : 사용자 응답 즉시 처리
계속적인 변화 : 항상 최근 데이터를 동적으로 유지
동시 공유
내용에 의한 참조 : 사용자가 요구하는 데이터 내용 참조
데이터의 논리적, 물리적 독립성
데이터 언어
- DDL ( 정의어 ) : 데이터베이스를 구축하거나 변경
- DML ( 조작어 ) : 데이터 처리를 위한 연산의 집합 ( 검색, 삽입, 삭제, 갱신, 연산 )
- DCL ( 제어어 ) : 데이터 보안, 무결성, 데이터 회복, 병행 제어
데이터 베이스 사용자
- 데이터베이스 관리자
- 데이터 관리자
- 데이터 설계자
- 응용 프로그래머
- 사용자
- 외부 스키마 : 사용자, 응용 프로그래머가 필요한 데이터베이스의 논리적 구조
- 개념 스키마 : 개체 간의 관계, 제약 조건 표시
- 내부 스키마 : 물리적 구조 정의
ER모델 : 개념적 데이터 모델의 가장 대표적인 모델
메핑 룰 : 개념적 데이터 모델( ER모델 )을 논리적 데이터 모델 ( 릴레이션 스키마 )로 변환
키의 개념 및 종류
슈퍼키 : 릴레이션의 속성들의 집합으로 구성된 키 ( 유일성 )
후보키 : 속성들 중 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분 집합 ( 유일성 / 최소성 )
기본키 : 후보키 중에서 선정된 키 ( 중복값, NULL값 불가능 )
대체키 : 후보키 중 기본키를 제외한 나머지 키
외래키 : 다른 릴레이션의 기본키를 참조하는 속성
무결성 : 데이터베이스에 저장된 값과 실제 값이 일치하는 정확성
- NULL 무결성
- 고유 무결성 : 각 튜플의 속성값이 달라야 함
- 도메인 무결성 : 속성이 정의된 도메인에 속한 값이어야 함
- 키 무결성 : 하나의 릴레이션에는 최소 하나의 키가 존재
- 관계 무결성 : 관계에 대한 적절성 여부
- 참고 무결성 : 외래키 값은 NULL또는 참고 릴레이션의 기본키 값과 동일
- 객체 무결성 : 기본키를 구성하는 어떠한 속성도 NULL값이 될수 없음
SQL
DDL ( CREATE, ALTER, DROP )
CREATE SCHEMA 스키마명 ATHORIZATION 사용자명
CREATE DOMAIN 도메인명 데이터타입 DEFAULT 기본값 CONSTRAINT 제약조건명 CHECK ( VALUE IN( ) );
CREATE TABLE 테이블명 ( 속성명 데이터타입 );
PRIMARY KEY
FOREIGN KEY ~ PREFERENCE
ON DELETE, ON UPDATE
NO ACTION
CASCADE
SET NULL
SET DEFAULT
CONSTRAINT
CHECK
CREATE VIEW 뷰명( 속성명 ) AS SELECT문
ALTER TABLE 테이블명 [ ADD / ALTER / DROP COLUMN ] 속성명
DROP TABLE 테이블명
CASCADE : 참조하는 모든 개체 함께 제거
RESTRICT : 다른 개체가 참조 중일 경우 제거 취소
SELECT
- SELECT 속성명 ( AS 별칭 ) FROM 테이블명
- WHERE
- GROUP BY
- HAVING
- ORDER BY 속성명 [ ASC / DESC ]
JOIN
- INNER JOIN
- SELECT 테이블명( 속성명 ), 테이블명( 속성명 ), ... FROM 테이블명1, 테이블명2 WHERE 테이블명.속성명 = 테이블명.속성명;
- SELECT 테이블명( 속성명 ), 테이블명( 속성명 ), ... FROM 테이블명1 NATURAL JOIN 테이블명2;
- SELECT 테이블명( 속성명 ), 테이블명( 속성명 ), ... FROM 테이블명1 JOIN 테이블명2 USING( 속성명 );
- OUTER JOIN
- SELECT 테이블명( 속성명 ), 테이블명( 속성명 ), ... FROM 테이블명1 LEFT OUTER JOIN 테이블명2;
- SELECT 테이블명( 속성명 ), 테이블명( 속성명 ), ... FROM 테이블명1, 테이블명2 WHERE 테이블명.속성명 = 테이블명.속성명(+);
DML ( INSERT, DELETE, UPDATE )
- INSERT INTO 테이블명( 속성명 ) VALUES ( 데이터 ... );
- DELETE FROM 테이블명 WHERE 조건문;
- UPDATE 테이블명 SET 속성명 = 데이터 WHERE 조건;
DCL ( COMMIT, ROLLBACK, GRANT, REVOKE )
COMMIT : 트랜잭션의 모든 변경 내용들을 영구적으로 데이터베이스에 반영
ROLLBACK : 변경된 내용들을 취소하고 이전 상태로 되돌리는 명령어;
GRANT 사용자등급 TO 사용자명
REVOKE 사용자등급 FROM 사용자명
ALL, SELECT, INSERT, DELETE, UPDATE, ALTER
WITH GRANT OPTION
GRANT OPTION FOR
CASCADE
이상 : 속성들의 종속으로 인해 데이터의 중복이 발생하게 되고 중복으로 인해 테이블 조작에 문제가 생긴다.
- 삽입 이상
- 삭제 이상
- 갱신 이상
정규화 : 중복을 제거하여 이상 발생 가능성을 줄이는 것
- 부분적 함수 종속 제거
- 완전 함수적 종속
- 이행적 함수 종속 제거
- 후보키인 정규형
'~ 2024.08' 카테고리의 다른 글
[ 정보처리기사/산업기사 ] 시스템 관리 및 보안 정리 (0) | 2018.10.07 |
---|---|
[ 정보처리기사/산업기사 ] 업무 프로세스 실무 정리 (0) | 2018.10.06 |
ajax ( Asynchronos Javascript And Xml )를 사용해보자! (0) | 2018.09.29 |
웹 페이지의 랜더링 과정 2편 (1) | 2018.09.25 |
웹 페이지의 랜더링 과정 1편 (2) | 2018.09.23 |