Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

BEATSLOTH 공대인의 무덤

[정보처리기사 실기] 데이터베이스 정리 본문

STUDY/정보처리기사 실기

[정보처리기사 실기] 데이터베이스 정리

SLOTHH 2016. 2. 12. 18:01

데이터베이스의 정의 : 관련 데이터들의 모임으로 조직체의 응용시스템들이 공유해서 사용하는 운영데이터들이 구조적으로 통합된 모임

데이터베이스의 필수 기능 : 정의, 조작,제어


 장점

단점 

물리적, 논리적 독립성

중복성 최소화

불일치 감소

무결성 보장

공유의 편리

표준화 용이

보안성 유지

관리 용이 

초기구축 비용 이 높다

전문가 부족

백업/ 복구의 어려움

자료처리 방법의 복잡 


DBMS (Database Manegement System) : 데이터베이스와 사용자를 연결해주는 역할을 하는 S/W 집합

스키마 ( Schema): 데이터베이스의 구조 ( 개체 , 속성, 관계)와 제약 조건에 대한 명세 기술

외부스키마( 서브스키마) :사용자 요구사항을 도출하는 과정 , 데이터베이스 시스템 사용자 관점에서 보고자 하는 정보의 집합

개념스키마( 논리스키마) :사용자 관점의 스키마인 외부 스키마를 분석하여 데이터베이스에 저장해야 할 필요가 있는 정보들을 도출하여 

                                데이터베이스 구조로 설계 한것

내부스키마( 물리스키마) : 논리 스키마를 컴퓨터 내부에 저장할 수 있는 물리적인 구조로 변환한 것 




데이터베이스 관리자(DBA): 데이터베이스 시스템과 관련된 모든 자원들에 대한 기획, 통제를 수행하는 사람 또는 조직 

데이터베이스 시스템 ( DB System) : 데이터베이스 시스템 = 응용프로그램들 + DBMS+ Database


데이터 모델링 과정 : 쉽게보면 앞의 글씨를 따라간다 분석-명세  설계는 - 스키마로 이런식으로 대충 때려 맞추면 된다.


DB의 구성요소

개체( Entity) : 사람, 장소 , 사물 ,사건 등과 같이 독립적으로 존재하여 고유하게 식별이 가능한 현실 세계의 객체이다 .

속성(Attribute): 개체의 성빌, 분류, 식별, 수량 , 상태 등을 나타내는 세부 항목이다.

관계(Relation): 두개 이상의 개체 사이에 존재하는 연관성이다. 



테이블의 집합 : 개체와 관계성을 모두 Table로 정의하여 표현 모든 관계성을 Key값으로 처리 ( 개체의 Key로 서로 연관시켜준다.)


 장점

단점 

업무 변화에 대한 적응력 탁월

유지,보수 편리성

높은 생산성 

응용프로그램의 개발 용이 

많은 시스템 자원의 요구

다:다 관계 표현이  


키의 개념 : DB에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성



키 종류

내용 

 유일성

최소성 

 슈퍼키

한 릴레이션 내에 있는 속성들의 집합으로 구성된 키 

 O

X

 후보키

튜플을 유일하게 구분할 수 있는 최소 슈퍼키 (하나의 속성으로 이루어짐) 

 O

 O

 기본키

후보키 중에서 특별히 선정된 키로 중복값을 가질수 없음 , 후보키의 성질을 가지며 NULL 값을 가질수 없다 

 O

 O

 대체키

후보키- 기본키 = 대체키 

후보키가 둘 이상 되는 경우에 그 중에서 어느 하나를 선정하여 기본키로 지정하면 나머지 후보키들은 대체키가 된다. 

 O

 O

 외래키

다른 릴레이션의 기본키를 참조하는 속성,속성들의 집합으로 참조 릴레이션의 기본키와 동일한 키 속성을 가진다. 

 O

 O

무결성: DB에서 데이터의 정확성을 위해 값들의 일관성을 유지하며 유효한 값이 존재 하도록 하는것 

제약조건: 데이터의 무결성을 유지하기 위한 조건으로 정확하지 않은 DB내에 저장되는것을 방지 

개체 무결성: 기본키 값은 NULL 값을 가질수 없고, 중복 값을 가지지 않는다 .

도메인 무결성: 속성값이 반드시 원자값이어야 하며 , 데이터 형식을 통해 값들의 유형을 지정 한다. 특정 속성 값이 도메인에 속한 값이다.

키 무결성: 외래키는 NULL이거나 참조하는 테이블의 기본키와 같은 값이어야 한다.  하나의 릴레이션엔 적어도 하나의 키가 있어야 한다.

참조 무결성 : 외래키는 NULL 값이거나 참조하는 테이블의 기본키와 같은 값이어야 한다.

NULL 무결성 : 특정 속성 값이 NOT NULL

고유 무결성 : 특정 속성에 대해 각 튜플들이 서로 다른 값이다 .

관계 무결성 : Relation 에서 튜플의 삽입 가능여부 

이상 (Anomaly)

삽입 이상

데이터를 삽입 할때, 의도치 않은 값들로 인해 삽입할 수 없게 되는 현상

삭제 이상

한 튜플을 삭제할 때, 의도치 않은 튜플도 연쇄 삭제 되는 현상 

갱신 이상

튜플들의 값을 갱신할 때 일부 튜플만 갱신되어 정보가 불일치 되는 현상 


함수적 종속: 어떤 릴레이션 R에서 X와 Y를 각각 R의 속성 집합의 부분 집합이라 할 경우, 속성의 값 각각에 대하여 시간에 관계 없이 항상 속성 Y의 값이 오직 하나만                 연관되어 있을때 Y는 X에 종속이라 하고 X->Y로 표기한다

완전 함수적 종속: 여러 개의 속성이 모여서 하나의 기본키를 이룰 경우 기본키 전체가 있어야지만 어떤 속성이 결정될때 완전 함수적 종속이다.

부분 함수적 종속: 완전하게 함수적으로 종속하지 않으면 부분 함수적 종속성을 갖는다. 기본키를 구성하는 부분속성만으로도 결정 되어지만 부분 함수종속

이행 함수적 종속 : X->Y , Y->Z 일때 X->Z를 만족하는 관계


정규화(Normalization): 함수적 종속성 등의 종속성 이론을 이용하여 잘못 설계된 관계형 스키마를 더 작은 속성의 셀로 쪼개 바람직한 스키마로 만들어 가는 과정 

정규화의 목적:  현실세계를 정확하게 표현하는 관계 스키마를 설계하는 작업으로 , 가능하다면 모든 개체간의 관계를 표현하기 위해서 이다.


SQL: 표준 관계형 데이터 베이스 언어 . DBMS에서 사용되는 비절차적 언어 

-비절차적 언어: What 까지만 명시

-절차적 언어: HOW까지 명시

대화형 SQL : 사용자가 다른 언어를 통하지 않고 직접 데이터베이스 시스템에 접근 하여 DB내 자료를 조작하기 위해 사용하는 SQL

내장형 SQL: 호스트 프로그램 언어에 삽입된 SQL 

관계 대수 중 순수 관계 연산자 

DIVISION :나누어 지는 릴레이션인 A는 릴레이션 B의 모든 내용을 포함한 것이 결과 릴레이션이 된다.

SELECT: 릴레이션에서 주어진 조건을 만족하는 튜플들을 검색하는 것으로 기호는 시그마

PROJECT: 릴레이션에서 주어진 조건을 만족하는 속성들을 검색하는 것으로 기호는 파이 (수직적 연산)

JOIN : 두개의 릴레이션 A와 에서 공통된 속성을 연결 하는 것

         Cartensian Project 연산 후 Select 연산을 수행한 것과 동일

SQL 구분 

데이터 정의어 (DDL): 물리적인 데이터베이스를 정의하고 관리하는 언어   (CREATE, DROP, ALTER)

데이터 조작어 (DML): 생성된 데이터베이스에 데이터를 처리하는 언어 ( SELECT, INSERT, UPDATE,DELETE)

데이터 통제어 ( DCL): 데이터베이스 사용 권한 및 데이터의 무결성, 병행 수행 제어 기능 등을 관리하는 언어 ( GRANT, REVOKE, COMMIT, ROLLBACK)


관계해석(Relational Calculus): 원하는 정보가 무엇이라는 것만 정의하는 비절차적언어, 질의어로 표현


DDL

CREATE : SCHEMA, DOMAIN, TABLE , VIEW, INDEX

    

         CREATE SCHIMA 수위실 AUTHORIZATION 이름;


CREATE DOMAIN BEATSLOTH CHAR(1);

DEFAULT '남'

CONSTRAINT VAILD-BEATSLOTH CHECK (VALUE IN('남';'여'))


CREATE  TABLE 학생{

학번 CHAR(18)

이름 CHAR(18) NOT NULL

성별 남

생년월일 DATE

PRIMAR KEY(학번), UNIQUE(생년월일) .

FOREIGN KEY (학과코드) REFERENCES 학과(학과코드


CREATE VIEW 여학생(이름,성별)

AS SELECT 이름,성별

FROM 학생

WHERE 성별=’남’;


CREATE INDEX

CREATE UNIQUE INDEX 고객번호_idx

ON 고객 ( 고객번호 DESC);


ALTER TABLE - 테이블의 정의를 변경

ALTER TABLE 학생 ADD 취미 CHAR(18);

ALTER TAVLE 학생 ALTER 성별 SET DEFAULT '남';

ALTER TABLE 학생 DROP 생년월일

DROP- 제거

DROP{SCHEMA |DOMAIN |TABLE| VIEW| INDEX |TREGGER | CONSTRAINT}

이름명 [{CASCADE | RESTRICT}]


DML

SELECT 속성

FORM 테이블


     SELECT [{ALL |DISTINCT | DISTINCTROW}]

     [테이블명.]속성명[AS별칭][.[테이블명]속성명[AS별칭],…]   

 FROM 테이블명 [테이블명,…]

 [WHERE 조건]비교연산자 /논리연산자 / LIKE

 [GROUP BY 속성명 [속성명, …]]

 [HAVING 조건]그룹함수에 대한 조건; 그룹함수

 (AVG (속성명), MAX(속성명), MIN(속성명), SUM(속성명), COUNT(속성명))

 [ORDER BY 속성명 {ASC | DESC}[속성명{ASC | DESC}]]; --기본값은 ASC



INSERT - 데이터베이스에 저장된 자료 (튜플)를 검색 삽입,삭제,갱신, 재구성 하기 위한 언어

INSERT INTO 수강생 VALUES ('이름','학과'.'지역',100)

-수강생 테이블에 이름,학과, 지역 100을 넣어라

UPDATE- 테이블에 있는 튜플들 중에 특정 튜플의 내용을 갱신할 때 사용

UPDATE 수강생 SET 과목='으에' WHERE 이름='BEATSLOTH'

-수강생 테이블에서 이름이 BEATSLOTH 튜플의 과목을 으에로 바꿔라 

DELETE - 테이블에 있는 튜플들 중에서 특정 튜플을 삭제 할 때 사용하는 명령문

DELETE FROM 수강생 WHERE 과목='사무'

-수강생 테이블에서 과목에 사무를 삭제하라


DCL

COMMIT- 데이터 베이스 사용 권한 및 데이터의 무결성, 병행 수행제어 기능등을 관리하는 언어

ROLLBACK -데이터베이스 조작 작업이 비정상적으로 종료되었을 때 원래 상태로 복구

GRANT - 데이터베이스 사용자에게 사용권한 부여

GRANT SELECT ON 수강생 TO ASD;

REVOKE - 데이터 베이스 사용자의 사용권한을 취소

REVOKE SELECT ON 수강생 FROM BEATSLOTH[CASCADE];

BEATSLOTH 에게 수강생 테이블에 대한 권한 취소 






Comments