일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SQL
- 객체
- 함수
- join
- 연산자
- 오버라이딩
- 오버로딩
- spring 게시판 삭제
- 자바의정석
- SQL 튜닝
- 논리 연산자
- 스프링시큐리티 로그아웃
- 예약어
- 배열
- 반복문
- 식별자
- SpringSecurity 로그인
- 산술 연산자
- 비교 연산자
- SpringSecurity 로그아웃
- SQL튜닝
- StringBuffer
- 인텔리제이 Web 애플리케이션
- 상속
- java
- 친절한 SQL
- 객체지향
- 친절한 SQL 튜닝
- @PreAuthorize("isAuthenticated()")
- 이클립스 설치
- Today
- Total
gi_dor
데이터베이스 구축 본문
🔹 DBMS 장 , 단점
장점 | 1. 데이터 중복 , 종속성 최소화 2. 데이터 공유 3. 데이터 무결성 , 일관성 유지 4. 데이터 보안 보장 |
단점 |
1. 예비와 회복 기법이 어려움 2. 데이터 베이스 전문가 부족 3. 시스템이 복잡하고 , 전산화 비용 증가 |
🔹 데이터 웨어하우스
많은 데이터를 모아놓은 하나의 서버라 생각하면 편함
OLAP
- 대량의 데이터를 고속으로 처리
- 다양한 관점에서 추출 분석 하도록 지원하는 데이터 분석기술
OLAP 연산종류
- Roll-Up
- Drill-Down
- Dicing
- Slicing
🔹 데이터 베이스 용어
1. 빅데이터 : 검색 수집 저장 분석이 어려운 방대한 데이터
2. 데이터 마이닝 : 데이터 웨어하우징에서 수집되고 분석한 자료를 제공 하기위해 분류 및 가공되는 요소 기술
3. Hadoop : 빅데이터 분산처리를 돕는 자바 소프트웨어 프레임워크
🔸 인덱스
- 인덱스를 통해 빠르게 데이터를 찾을수 있는 수단 , 조회속도를 높여주는 자료구조
- 레코드의 삽입 , 삭제가 자주 발생시 인덱스 개수를 최소화 하는 것이 효율적
- primary key , UNIQUE 는 자동으로 index 가 생성됨 - 고유인덱스
- 사용자가 index 생성 - 비고유 인덱스
📌
레코드 - 데이터베이스에서 하나의 단위로 취급되는 자료의 집합.
DB table에서 가로 방향으로 한 줄, 행(row) 또는 튜플(tuple)이라고도 한다.
🔹 색인 순차 파일
색인 이라는 별도의 인덱스 → 색인(index) 영역
1️⃣ 기본영역 : 데이터 레코드를 지정하는 부분
2️⃣ 색인 영역
• 트랙 인덱스
• 실린더 인덱스
• 마스터 인덱스
3️⃣ 오버플로 영역
🔹 VSAM 파일
동적 인덱스 방법을 이용한 색인(index) 순차파일
- 기본영역과 오버플로 영역을 구분하지 않는다
- 레코드 삭제하면 재사용 가능하다
🔹 직접 파일 Direct File
- 해싱함수를 계산해 물리적 주소에 직접 접근하는 방식
🔹 역파일 Inverted File
- 특정파일을 여러개의 색인으로 만들고 항목별 특성에 맞게 작업하도록 구성한 구조
🔹 정적 인덱싱 - 색인 순차 파일 방식
- 데이터 파일에 레코드가 삽입 삭제되면 인덱스 내용은 변하지만 구조는 정적으로 변하지 않는 구조
🔹 동적인덱싱 - 가상기억 접근방식
- 데이터 파일에 레코드가 삽입되면서 삽입될 레코드를 위해 미리 빈공간을 준비
- 블록에 가득차면 동적으로 분열
- 인덱스 부분과 데이터 부분을 별개의 파일로 구성
🔸 데이터베이스 구성
🔹 스키마 Schema
- 데이터 베이스의 구조 (개체 , 속성 , 관계)에 대한 정의
🔹 스키마 3계층
1. 외부 스키마 External
- 사용자나 응용 프로그래머가 접글할 수 있는 정의를 기술한다
2. 개념 스키마 Conceptural
- 데이터베이스 전체를 정의한것으로 데이터 개체 , 관계 , 제약조건 , 접근권한 , 무결성 규칙 등을 명세
- 범기관적 입장에서 데이터베이스를 정의한다
3. 내부 스키마 Internal
- 데이터의 실제 저장방법을 기술
- 물리적 저장장치의 입장에서 본 데이터베이스 구조 , 저장될 레코드의 형식을 정의
- 저장데이터 항목의 표현 방법 , 내부 레코드의 물리적 순서를 나타낸다
🔹 데이터 베이스 언어
DDL - 데이터 정의어
- 테이블과 같은 데이터를 정의한다 - 데이터를 담는 그릇을 정의
- 객체들 , 테이블 , 뷰 , 인덱스 등에 대한 구조적 스키마 정의 , 변경 , 삭제 , 이름변경
- CRATE , ALTER , DROP , TRUCATE
DML - 데이터 조작어
- 사용자와 데이터 베이스 관리시스템 간의 인터페이스 제공
- 검색 , 삽입 , 삭제 , 변경
- SELECT , INSERT , DELETE , UPDATE
DCL - 데이터 제어어
- 불법적인 사용자로부터 데이터를 보호
- 무결성을 유지
- 데이터 회복
- 병행 제어 수행
- GRANT , REVOKE , COMMIT , ROLLBACK , SAVEPOINT
🔸 데이터 모델
🔹 데이터 모델의 개념
- 현실세계를 데이터 베이스에 표현하는 중간과정
- 데이터베이스 설계과정에서 데이터의 구조를 표현하기 위해 사용되는 도구
🔹 모델 구성요소
1 ) 데이터 구조 Structure : 데이터 구조 및 정적 성질을 표현
2 ) 연산 Operations : 데이터의 인스턴스에 적용가능한 연산 명세서와 조작 기법을 표현
3 ) 제약조건 Constraints : 데이터의 논리적 제한 명시 및 조작의 규칙
🔹 데이터 모델의 구분
📌 ER 다이어 그램
🔹 논리적 데이터 모델
1 ) 관계형 데이터 모델 - 데이터베이스를 테이블Table의 집합으로 표현
2 ) 계층형 데이터 모델 - 데이터베이스를 트리Tree를 구조
3 ) 네트워크형 데이터 모델 - 데이터베이스를 그래프 구조로 표현
🔸 관계형 데이터베이스 모델
🔹 정의 - 관계형 데이터 베이스를 구성하는 개체나 관계를 릴레이션으로 표현
🔹 관계형 데이터베이스 모델구조
1️⃣ 튜플 : 테이블의 행에 해당되며 파일 구조의 레코드와 같은 의미
2️⃣ 카디널리티 : 튜플의 수 , 행 row
3️⃣ 속성 : 테이블의 열 , Column에 해당 , 파일구조의 항목 , 필드와 같은 의미
4️⃣ 디그리 ,차수 : 열 , 컬럼 , 하나의 릴레이션의 원자값 , 속성간 순서가 없음
한 릴레이션의 스키마가 4개속성 , 2개 후보키 , 스미카의 대응 릴레이션 인스턴스가 7개 튜플을 갖는 다면 그 릴레이션의 차수는 ? ▶ 4개
🔹 릴레이션 특징
- 튜플의 유일성 : 모든 튜플은 서로 다른 값을 갖는다
- 튜플의 무순서성 : 하나의 릴레이션에서 튜플의 순서는 없다
- 속성의 원자성 : 속성값은 원자값을 갖는다
- 속성의 무순서성 : 각 속성은 릴레이션 내에서 유일한 이름을 가지며 , 속성의 순서는 큰 의미가 없다
🔹 키 Key의 종류와 무결성
1. 슈퍼키
- 두개 이상 속성으로 구성된 키 또는 혼합키를 의미 , 단일 속성도 가능하다
- 모든 튜플에 대해 유일성은 만족 , 최소성은 만족하지 않음
- Ex. 두개이상 - 학번,이름 // 단일속성 - 학번
2. 후보키 Candidate Key
- 테이블에서 각 튜플들을 구별하는데 기준이 되는 컬럼
- 릴레이션에서 유일성과 최소성을 만족한다
- 기본키와 대체키를 합친 키
3. 대체 키 Alternate Key
- 후보 키 중에서 기본키로 선택되지 않은 키
4. 기본 키 Primary Key
- 테이블의 각 튜플들을 (행) 을 고유하게 식별하는 컬럼
5. 외래 키 Foreign Key
- 테이블간의 참조 데이터 무결성을 위한 제약조건
- 한 릴레이션의 컬럼이 다른 릴레이션의 기본키로 이용되는 경우
- 테이블내의 컬럼이 다른 테이블에서는 기본키 PK로 이용되는 경우
📌 개체 무결성
- 기본 키 PK 의 값은 NULL 이나 중복 값을 가질수 없는 제약조건
📌 참조 무결성
- 릴레이션 R1 에 속성 조합인 외래키를 변경 하려면 이를 참조하고있는 릴레이션 R2의 기본키도 변경해야 한다
- 이때 참조할 수 없는 외래키 값을 가질수 없는 제약 조건
📌 도메인 무결성
- 릴레이션 중 하나의 속성은 반드시 원자 값이어야한다는 것을 보장하는 제약조건
원자 값
해당 속성의 값은 더 이상 쪼갤 수 없는 단일 값이어야 하며, 복수의 값을 포함하거나 여러 속성을 조합한 값은 허용되지 않는다.
🔸 데이터 베이스 설계단계
🔹 요구조건 분석
- 데이터베이스 사용자로부터 요구 조건 수집과 요구조건 명세서를 작성
1️⃣ 개념적설계
- 개념 스키마 모델링 ER 다이어그램 작성 , 트랜잭션 모델링 병행수행
2️⃣ 논리적 설계
- table
- 스키마 평가 및 정제
3️⃣ 물리적 설계
- 저장
- 접근경로 설계 , 트랜잭션 세부 설계
.
🔸 데이터 베이스 정규화
🔹 정규화 개념
- 스키마를 생성하고 필요하지 않은 데이터 중복 제거 , 이상현상 방지, 정보검색을 용이하게 한다
- 데이터의 일관성 , 정확성 유지
🔹 정규화의 목적
- 데이터 구조의 안정성 최대화
- 중복데이터 최소화
- 수정 및 삭제시 이상 현상 최소화
- 테이블 불일치 위험 간소화
- 효과적인 검색 알고리즘
🔹 이상현상
1 . 이상현상 ?
- 릴레이션 조작시 데이터들이 불필요하게 중복되어 예기치 않게 발생하는 곤란한 현상
2. 종류
- 삽입 , 삭제 , 갱신 이상
🔸 함수적 종속
🔹 함수적 종속
- 데이터 속성들의 의미와 속성간의 상호 관계로부터 도출되는 제약조건
- 기준값을 결정자Determinant 라고 하며 종속되는 값을 종속자 Dependent Ex. 결정자 - 기본키 , 학번 // 종속자 - 이름
🔹 이행 함수적 종속
- 속성 X,Y,Z가 주어질 때
- X → Y , Y → Z , 하면 X → Z 가 성립된다
- 고객아이디 X는 등급Y를 결정하고
- 등급 Y는 할인율 X를 결정 한다
- 즉 고객 아이디로 할인율을 결정할 수 있는 이행 종속문제가 발생한다.
🔸 정규화
도부이결다조
🔹 1 정규형
- 모든 도메인이 원자 값만으로 이루어진 릴레이션
- 하나의 속성만 있어야하고 반복되는 속성은 별도 테이블로 분리
🔹 2 정규형
- 1정규형을 만족 , 부분함수적 종속을 제거
- 기본키에 완전 함수 종속이 되도록 부분 함수적 종속에 해당하는 속성을 별도의 테이블로 분리
🔹 3 정규형
- 1,2 정규형을 만족하고 이행적 함수 종속을제거
이행적함수종속 : A→B , B→C , A→C
🔹 BCNF (보이스/코드) 정규형
- 1,2,3 정규형을 만족하고 결정자가 후보키가아닌 함수 종속이 제거되면 보이스/코드 정규형에 속한다
🔹 4 정규형
- 1,2,3, BCNF 정규형을 만족하고 다가(다치) 종속을 제거
🔹 5 정규형
- 1,2,3,BCNF,4 정규형을 만족하고 후보키를 통하지 않은 조인종속을 제거
📌
- 1차 - 원자값 , 하나의속성
- 2차 - 부분함수적 종속 제거 , 기본키에 완전함수 종속
- 3차 - 이행적 함수 종속 제거
- BCNF - 결정자가 후보키가아닌 함수 종속이 제거
- 4차 - 다가 , 다치 종속제거
- 5차 - 조인종속 제거
🔸 반정규화
- 정규화를 통해 조인이 많이 늘어난다 , 이로인해 조회시 성능이 저하될수 있기에 사용한다
- 시스템성능 향상과 개발 운영의 단순화를 위해 중복 , 통합 , 분리등을 수행하는 데이터 모델링 기법
🔹 기법
1. 반정규화 기법 : 테이블 반정규화 , 컬럼 반정규화 , 관계 반정규화
2. 테이블 반정규화 기법 : 테이블 병합 , 테이블 분할 , 테이블 추가
3. 테이블 추가 반정규화 유형 : 중복테이블 추가 , 집계 테이블 추가 , 진행 테이블 추가 , 부분 테이블 추가
🔹 테이블 병합
🔹 테이블 분할 - 파티셔닝
테이블을 여러부분으로 분할하는 것을 의미
- 파티션 각각 작은 데이터베이스가되도록 분할하는 방법
- 하나의 테이블만 같이 선택된 요소만 분리
- 각 파티션은 여러노드로 분산 배치되어 사용자가 각 노드에서 로컬 트랜잭션을 수행
🔹 행/열 분할
🔹 분할 키 기준 분할 기법 - 수평분할
🔹 데이터베이스 클러스터링
📌 데이터의 조회 속성을 높이기 위해서 자료들을 묶어놓는것
1. 병렬처리 클러스터링
처리율 높이기 위해 단위작업을 여러서버에서 분산처리
2. 고가용성 클러스터링
하나의 서버에 장애가 발생시 다른서버가 작업을 이어받아 서비스 중단을방지
🔹 테이블추가
1. 중복 테이블 추가
업무가 다르거나 서버가 분리된 경우 같은 테이블을 중복으로 추가해 원격조인을 제거해 성능 향상시킨다
2. 집계 테이블추가
합계,평균등 통계계산을 미리 수행하여 계산해두어 조회시 성능을 향상
3. 이력 테이블 추가
이력 테이블에 레코드를 중복 저장하여 성능을 향상
4. 부분 테이블추가
하나의 테이블을 전체 컬럼중 자주 사용하는 컬럼이 있을 경우 ,
디스크 I/O를 줄이기 위해 해당컬럼들을 모아 놓은 별도의 반정규화된 테이블
5. 진행 테이블추가
검색조건이 여러 테이블에 걸쳐 다양하게 사용되어 복잡하고 처리량이 많은경우 사용
🔹 컬럼 반정규화
1. 중복컬럼 추가
2. 파생컬럼 추가
3. 이력테이블 컬럼 추가
4.PK에 의한 컬럼추가
5. 응용시스템 오작동을 위한 컬럼 추가
🔹 관계 반정규화
중복 관계 추가
🔹 관계 대수 Relational Algebra
📌 대 , 절 버스 라고 외우자
- 원하는 정보과 그정보를 어떻게 유도하는가를 기술하는 절차적인 방법
- 릴레이션 조작을 위한 연산자의 집합
- 일반집합 연산 , 순수관계 연산으로 구분
🔹 순수관계 연산자
🔹 일반 집합 연산자의 종류
🔹 View
사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 기본테이블에서 유도되는 가상 테이블
🔹 특징
- 뷰의 생성 시 CREATE문 , 검색 시 SELECT문을 사용
- 뷰의 정의 변경 시 ALTER문을 사용할수 없고 DROP문을 이용
- 뷰를 이용한 다른 뷰를 생성가능
- 삽입 insert , 갱신 update , 삭제delete 는 제약이 따른다
- 뷰가 정의된 기본테이블이 제거되면 뷰도 자동으로 제거된다
장점
- 실제 데이터에 접근하지 않음 , 논리적 데이터 독립성 제공
- 사용자 데이터 관리 편의성
- 보안 제공
단점
- ALTER VIEW 문으로 뷰의 정의 변경이 불가능
- 삽입 , 갱신 , 삭제 연산에 제약있음
🔹 시스템 카탈로그
- 시스템 자신이 필요한 여러객체 (테이블 , 뷰 , 인덱스 ,DB , 패키지 , 접근권한)에 관한 정보를 포함하고있는
시스템 데이터 베이스다 - 데이터사전 , 메타 데이터 라고 한다
- 시스템 테이블로 구성되어있어 SQL문으로 검색 가능
- 사용자가 직접 갱신은 불가능 , SQL문으로 여러 객체에 변화를 주면 시스템이 자동으로 갱신
🔹 트랜잭션
- 하나의 기능을 수행하기 위한 작업단위
- 데이터베이스에서 일어나는 연산의 집합
🔹 특성
1. 원자성 Atomicity
- 완전하게 수행이 완료되지 않으면 수행되지 않아야한다
- Commit Rollback 으로 적용 또는 취소로 한꺼번에 완료되야한다
- 중간에 하나의 오류가 발생되더라도 취소 되야한다
2. 일관성 Consistency
- 시스템의 고정 요소는 트랜잭션 수행 전 후가 같아야한다
- 트랜잭션 결과는 일관성을 유지해야한다
3. 격리성 Isolation
- 트랜잭셕 실행 시 다른 트랜잭션의 간섭을 받지않아야 한다
4. 영속성 Durability
- 트랜잭션 완료결과가 데이터베이스에 영구히 기억된다
- A은행에서 100원중 10원 인출시 계좌에는 90원이 남아있어야한다
🔹 Crud Matrix
데이터베이스를 분석하는 도구
🔹 즉각 갱신법
- 데이터 갱신하면 트랜잭션이 완료되기 전에 실제 데이터베이스에 반영하는 방법
- 회복작업을 위해 갱신내용을 Log로 기록
- Redo , Undo 사용가능
🔹 트랜잭션 연산
Commit
- 트랜잭션 실행이 성공적으로 종료 선언
Rollback
- 트랜잭션 실행이 실패하였음을 선언
Recovery
- 트랜잭션 실행 도중 장애로 인해 손상된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구
🔸 병행제어
🔹 병행제어
- 동시에 수행되는 트랜잭션들을 일관성 있게 처리하기위해 제어하는 것
목적
- 데이터베이스 공유 최대화
- 일관성 최대화
- 시스템 활용도 최대화
- 사용자에 대한 응답시간 최소화
문제점 : 갱신 분실 , 비완료 의존성 , 모순성 , 연쇄복귀
종류 : 로킹 , 최적병행 , 타임스탬프 , 다중버전
🔹 로킹
A트랜잭션이 데이터를 액세스 하는동안 B트랜잭션이 그 데이터 항목을 액세스 할수 없게 병행제어 하는 기법
특징
- 단위가 커지면 로그수가 적어 관리가 쉬워짐 , 병행성 수준은 낮아짐
- 단위가 작으면 로그수가 많아 관리가 어려움 , 병행성 수준은 높아짐
- 로킹 대상이 되는 객체 - 파일 , 테이블 , 필드 , 레코드 의 크기를 로킹단위 라고 한다
2단계 로킹
- 직렬성은 보장 , 교착상태 예방 불가
- 확장 , 축소 2단계가 있다.
'자격증 > 정보처리' 카테고리의 다른 글
모의고사 1과목 오답노트 - 기록 (1) | 2024.02.18 |
---|---|
정보 시스템 구축관리 (1) | 2024.02.17 |
소프트웨어 개발 - 2 자료구조 (1) | 2024.02.06 |
소프트웨어 개발 - 1 (0) | 2024.01.27 |
소프트웨어 설계 (1) | 2024.01.22 |