hyeonga_code
Database_01_데이터베이스 관리 시스템 본문
- 데이터베이스 관리 시스템
- 데이터_Data
- 현실 세계에서 단순히 관찰하거나 측정하여 수집한 값
- 가공 전
- 자료
- 정보_Interface
- 의사 결정에 유용하게 활용할 수 있도록 데이터를 체계적으로 처리하여 조직한 결과물
- 객체
- 데이터베이스
- 컴퓨터를 이용하여 자료를 모아두는 것
- 정보 처리_Information processing
- 데이터에서 정보를 추출하는 과정/방법
- 데이터를 분석하거나 해석하여 데이터 간의 의미 관계를 파악
- 정확하고 의미 있는 데이터의 수집이 필요합니다.
- 예시
- 쇼핑몰에서 주문 내역 데이터를 분석하여 제품별 또는 분기별 판매액을 추출
- 제품 판매 전략을 세우는 데 의미있게 활용
- web server
- 사용자의 요청을 받아 처리하는 서버
- 자료를 받아주는 서버 > 파일, 데이터베이스
- 엑셀을 사용하여 데이터를 처리하는 것은 데이터베이스가 아닌 파일 시스템입니다.
- 정보 시스템_Information System
- 조직 운영에 필요한 데이터를 수집, 저장합니다.
- 필요한 시기에 유용한 정보를 만들어 주는 수단입니다.
- 사용 목적에 따라 저장되는 데이터의 내용과 부르는 이름이 다릅니다.
- 경영 정보 시스템
- 스마트 팩토리 시스템_불량, 일조량 등
- 의사결정 지원 시스템 : 선거 출구 조사, 통계청
- 경영정보 + 의사결정 : 하이브리드시스템
- 사물 인터넷
- 정보 시스템의 역할과 구성
- 현실 세계에서 있는 자료 중 필요한 데이터를 처리, 선별하여 데이터베이스에 저장합니다.
- 데이터베이스에서 의사 결정자가 필요로하는 데이터를 정보화합니다.
- 데이터베이스_DataBase
- 정보 시스템 안에서 데이터를 저장하고 있다가 필요할 때 제공하는 역할을 담당합니다.
- 특정 조직의 여러 사용자가 공유하여 사용할 수 있도록 통합하여 저장한 운영 데이터의 집합
- 파일 시스템의 단점
- 읽기 동기화는 가능하지만 동시 편집은 불가능합니다.
- 특징
- 통합 데이터_integrated data
- 최소의 중복과 통제가 가능한 중복만 허용하는 데이터
- 저장 데이터_stored data
- 컴퓨터가 접근할 수 있는 매체에 저장된 데이터
- 공유 데이터_shared data
- 특정 조직의 여러 사용자가 함께 소유하고 이용할 수 있는 공용 데이터입니다.
- 운영 데이터_operational data
- 조직을 운영하고 주요 기능을 수행하기 위해 지속적으로 꼭 필요한 데이터
- 특성
- 실시간 접근_real-time accessibility
- 사용자의 데이터 요구에 실시간으로 응답
- 계속 변화_continuous evolution
- 끊임없이 변하는 현실 세계를 정확하게 반영_동적 특성
- 데이터의 계속적인 삽입, 삭제, 수정을 통해 현재의 정확한 데이터를 유지
- 내용 기반 참조_contents reference
- 데이터가 저장된 주소나 위치가 아닌 내용으로 값을 참조합니다.
- 동시 공유_concurrent sharing
- 데이터의 동시 사용 지원
- 종류
- 파일 시스템_File System
- 데이터를 파일로 관리하기 위해 파일을 생성, 삭제, 수정, 검색하는 기능을 제공합니다.
- 응용 프로그램마다 필요한 데이터를 별도의 파일로 관리합니다.
- 예시
- 인터넷 쇼핑몰 운영을 위한 파일 시스템으로 데이터를 관리
- 고객 관리_ 고객아이디, 고객이름, 연락처, 주소
- 주문 관리_제품명, 수량, 고객아이디, 고객 이름, 연락처, 주소
> 목적에 따라 일부 데이터를 중복되게 별도로 저장해야 합니다.
- 장점
- 운영체제에서 제공하는 기능입니다.
- 별도의 구입 비용이 들지 않습니다.
- 단점
- 데이터 중복성
- 같은 내용의 데이터가 여러 파일에 중복되어 저장됩니다.
- 중복으로 인해 데이터의 일관성과 데이터 무결성 유지가 어렵습니다.
> 의존성
- 데이터 종속성
- 응용 프로그램이 데이터 파일에 종속적입니다.
- 응용프로그램을 사용하는 파일의 데이터를 구성하는 방법이나 물리적 저장 구조에 맞게
작성해야 합니다.
- 데이터 동시성
- 데이터 파일에 대한 동시 공유, 보안, 회복 기능이 부족합니다.
- 응용 프로그램 개발이 쉽지 않습니다.
- 파일에 접근하여 데이터를 관리하는 모든 작업을 담당해야 합니다.
- 데이터베이스 관리시스템_DBMS_DataBase Management System
- 파일 시스템의 문제를 해결하기 위해 제시된 소프트웨어입니다.
- 통합 저장 시에 데이터의 동시 사용 문제 발생
- 필요한 데이터를 데이터베이스에 통합하여 저장하고 관리합니다.
- 데이터 톡립성을 보장합니다.
- 데이터 관리
- 데이터베이스를 생성하고 접근하며 관리합니다.
- 사용자가 원하는 처리를 데이터베이스관리 시스템에 요청합니다.
- 사용자 : 데이터베이스의 물리적 저장 구조나 데이터 접근 및 처리방법을 알 필요 없습니다.
- DBMS가 고객의 요청을 받습니다.(요청, 추가, 삭제, 수정)
- DBMS만 데이터베이스에 접근할 수 있습니다.
- 주요 기능
- 정의 기능
- 데이터베이스 구조를 정의하거나 수정할 수 있습니다.
- 조작 기능
- 데이터를 삽입, 삭제, 수정, 검색하는 연산을 할 수 있습니다.
- 제어 기능
- 요청한 정보만을 확인할 수 있습니다.
- 데이터를 항상 정확하고 안전하게 유지할 수 있습니다.
- 장점
- 데이터의 중복을 통제할 수 있습니다.
- 데이터의 독립성이 확보됩니다.
- 데이터를 동시 공유 할 수 있습니다.
- 데이터 보안이 향상됩니다.
- 데이터 무결성을 유지할 수 있습니다.
- 표준화할 수 있습니다.
- 작성자에 따라 데이터의 차이를 줄이기 위함입니다.
- 장애가 발생한 경우 회복이 가능합니다.
- 응용 프로그램 개발 비용이 감소합니다.
- 데이터를 처리하는 역할을 프로그램이 진행합니다.
- 코드의 길이가 줄어들게 됩니다.
- 단점
- 비용이 발생합니다.
- 추가로 소프트웨어를 구매해야 합니다.
- 백업과 회복 방법이 복잡합니다.
- 완벽한 복구를 위함입니다.
- 클라우드 환경으로 변경되며 자동 백업/복구가 가능합니다.
- 중앙 집중 관리로 인한 취약점이 존재합니다.
- 데이터베이스 구조
- 스키마_Schema
- 데이터베이스에 저장되는 데이터 구조와 제약 조건을 정의한 것입니다.
- 한 번 정의되면 자주 변경되지 않습니다.
고객 번호 : int
인스턴스 이름 : 제약 조건
- 인스턴스_Instance
- 스키마에 따라 데이터베이스에 실제로 저장된 값을 의미합니다.
- 계속 변하는 특성이 있습니다.
- 데이터는 상태가 계속 변합니다.
- 데이터베이스에 스키마+인스턴스의 조합이 매우 다양하게 저장됩니다.
- 3단계로 이루어져있습니다.
- 관점에 따라 세 단계로 나누었습니다.
- 외부 단계_External = 서브 스키마_sub
- 개별 사용자의 관점입니다.
- 개념 단계에서 필요한 정보만 집약합니다.
- 데이터베이스 하나에 외부 스키마가 여러 개 존재할 수 있습니다.
- 사용 목적이 동일한 사용자들이 공유할 수 있습니다.
- 개념 단계_Conceptual ***
- 조직 전체의 관점입니다.
- 데이터베이스 하나에 하나의 개념 스키마만 존재할 수 있습니다.
- 일반적인 스키마입니다.
- 내부 단계_Internal
- 물리적인 저장 장치의 관점입니다.
- 레코드 구조, 필드 크기, 레코드 접근 경로 등 물리적 저장 구조를 정의합니다.
- 데이터베이스 하나에 하나의 내부 스키마만 존재합니다.
+ 이해하기
- 테이블 : 학교
- 스키마 : 학생, 학번, 성적, 주소, 전화번호 등
- 도서관에서 필요한 학생의 정보 : 학번, 학생이름, 빌려간 날짜..
- 개념 단계 : 모든 데이터
- 외부 단계_view : 개념에 존재하는 데이터를 원하는 정보만 저장한 상태
/*
- 논리적 독립성 : 개념 단계와 외부 단계의 독립성
- 개념에 존재하는 데이터만을 사용할 수 있습니다.
- 변형은 할 수 있습니다.
- 외부 단계는 개념 단계의 부분집합입니다.
- 하나의 개념 단계에 여러 개의 외부 단계가 존재할 수 있습니다.
- 개념의 변경된 데이터는 외부 단계에서도 동시에 변경된 데이터로 접근할 수 있습니다.
- 개념 단계에서 데이터를 변경한 경우 데이터를 사용하지 않는 외부 단계에는 영향이 없습니다.
- 서로 변경된 값이 있는 경우 영향을 최소한으로 적게 하기 위함입니다.
> 독립성이 존재합니다.
- 물리적 독립성 : 개념 단계와 내부 단계와의 독립성
- 데이터베이스는 위치 기반이 아닌 내용 기반 저장장치입니다.
- 데이터의 위치가 변경되어도 영향을 받지 않습니다.
- 스키마가 3가지가 있는 이유
- 스키마의 독립성을 유지하기 위함입니다.
*/
- 집
- 내부 단계 : 아파트 건물 자체
- 개념 단계 : 살고있는 호 수
- 외부 단계 : 집 내부
------------------------------------------------------------
- 내부 단계 : 번호, 이름, 성별, 나이, 직업, 주소, 연락처
- 개념 단계 : 번호, 이름, 성별, 나이, 직업, 주소, 연락처
- 외부 단계
1) 고객 분석 : 성별, 나이, 직업
2) 상품 배송 : 고객번호=번호, 고객이름=이름, 주소, 연락처
------------------------------------------------------------
> 개념 단계의 번호와 외부 단계의 상품 배송에서의 고객 번호는 매핑되어있습니다.
> 개념 단계의 번호는 내부 단계의 번호와 매핑되어 있습니다.
> 내부 단계에서 데이터의 크기가 변경된다고 해서 개념 단계에 영향을 끼치지 않습니다.
- 각 단계별로 다른 추상화_Abstraction를 제공합니다.
- 추상화
- 지도, 지하철 노선도
- 추상화의 레벨이 높아질수록 간단 명료해집니다.
- 요구사항에서 필요한 요소를 추출하는 것도 포함됩니다.
- 개념 단계에서 외부 단계로 넘어갈 때 필요한 정보를 추출하는 과정입니다.
- 없는 데이터는 사용할 수 없으나 데이터의 변형은 가능합니다.
- 내부 단계에서 외부 단계로 갈수록 추상화의 레벨이 높아집니다.
- 세 가지 스키마의 유기적인 대응 관계
- 하나의 데이터베이스에 존재하는 세 가지 스키마는 모두 같은 데이터베이스를 표현합니다.
- 사상 = 매핑
- 특징
- 데이터 독립성_Data Independency
- 하위 스키마를 변경해도 상위 스키마가 영향을 받지 않습니다.
- 논리적 데이터 독립성 : 개념 + 외부
- 물리적 데이터 독립성 : 개념 + 내부
- 데이터 사전_Data Dictionary
- 시스템 카탈로그_System Catalog
- 데이터베이스에 저장되는 데이터에 관한 정보, 즉 메타 데이터를 유지하는 시스템 데이터베이스
- 스키마, 스키마 간의 사상 정보, 다양한 제약 조건 등을 저장합니다.
- 데이터베이스 관리 시스템이 스스로 생성하고 유지합니다.
- 일반 사용자도 접근이 가능하지만 저장 내용을 검색만 할 수 있습니다.
/*
- 데이터베이스
- 메타데이터_IT 용어입니다.
- 시스템과 관련된 정보
- 시스템 데이터를 의미합니다.
- 자기 자신에 대한 데이터도 데이터베이스에 저장합니다.
- 개념 스키마에 매핑되는 로그를 저장합니다.
- 사용자별 권한 데이터를 저장합니다.
- 유저 데이터
- 내가 작성한 파일
- DBMS에 요청이 들어오면 DB에 sql 문을 작성하여 접근부터 합니다.
- 수십개의 로그가 생성됩니다.
- 데이터베이스는 로그를 남겨 백업, 복구에 유리합니다.
- DBMS를 설치하는 경우 DB도 같이 설치됩니다.
- 메타데이터도 기본적으로 지정되어 있습니다.
- 사용자도 메타데이터에 접근할 수도 있습니다.
*/
- 데이터 디렉터리_Data Directory
- 데이터 사전에 있는 데이터에 실제로 접근하는 데 필요한 위치 정보를 저장하는
시스템 데이터베이스입니다.
- 일반 사용자의 접근은 허용되지 않습니다.
- 사용자 데이터베이스_User Database
- 사용자가 실제로 이용하는 데이터가 저장되어 있는 일반 데이터베이스
- 비즈니스 데이터베이스
- 데이터베이스 사용자
- 데이터베이스를 이용하기 위해 접근하는 모든 사람
- 데이터베이스 관리자_DBA_DataBase Administrator
- 데이터베이스 시스템을 운영하고 관리합니다.
- 컴퓨터시스템이나 데이터베이스 관련 많은 지식과 경험이 필요합니다.
- 조직 내의 사용자를 위해 데이터베이스 설계 및 구축, 제어를 담당합니다.
- 주로 데이터 정의어와 데이터 제어어를 이용합니다.
- 주요 업무
- 백업 및 회복 기법 정의
- 시스템 데이터베이스 관리
- 시스템 성능 감시 및 성능 분석
- 자주 하지 않는 업무(구성 초기에만 작업합니다.)
- 데이터베이스 구성 요소 선정
- 데이터베이스 스키마 정의
- 물리적 저장 구조와 접근 방법 결정
- 무결성 유지를 위한 제약 조건 정의
- 보안 및 접근 권한 정책 결정
- 데이터베이스 재구성
- 응용 프로그래머_Application Programmer
- 데이터 언어를 삽입하여 응용 프로그램을 작성합니다.
- 주로 데이터 조작어를 사용합니다.
- 최종 사용자_End User
- 데이터베이스에 접근하여 데이터를 조작합니다.
- 주로 데이터 조작어를 사용합니다.
- 구분
- 캐주얼 사용자
- 초보 사용자
/*
- 사용자 > WEB1 > WAS1 > DB /DB _ sub
> WEB2 > WAS2
- DB는 하나이지만 subDB에 저장되어 DB가 다운되면 곧바로 실행할 수 있도록 합니다.
*/
- 데이터 언어
- 사용자와 데이터베이스 관리 시스템 간의 통신 수단입니다.
- 사용 목적에 따른 구분
- 데이터 정의어_DDL_Data Definition Language
- 스키마를 정의하거나 수정, 삭제하기 위해 사용합니다.
- 데이터 정의어로 정의된 스키마는 데이터사전에 저장됩니다.
- 스키마의 수정, 삭제가 발생하면 데이터 사전에서 변경됩니다.
- 데이터 사전에 저장된 스키마 정보는 데이터베이스 관리 시스템 또는 사용자가 필요한 경우 참고합니다.
- 데이터 조작어_DML_Data Manipulation Language
- 데이터의 삽입, 삭제, 수정, 검색 처리를 요구하기 위해 사용합니다.
- 절차적 데이터 조작어_Procedural DML
- 사용자가 원하는 데이터와 어떻게 처리해야하는지 까지 알려주는 언어입니다.
- 비절차적 데이터 조작어_Nonprocedural DML
- 사용자가 원하는 데이터를 설명합니다.
- SQL을 사용하는 엔진에는 옵티마이저가 내장되어 가장 최적화된 처리 과정을 예측하고 실행합니다.
= 선언적 언어_Declarative Language
- 데이터 제어어
- 대부적으로 필요한 규칙이나 기법을 정의하기 위해 사용합니다.
- 사용 목적
- 무결성 : 정확하고 유효한 데이터만 유지합니다.
- 보안 : 허가받지 않은 사용자의 데이터 접근 차단, 허가된 사용자에 권한 부여
- 회복 : 장애가 발생해도 데이터 일관성 유지
- 동시성 제어 : 동시 공유 지원
- 데이터베이스 관리 시스템
- 사용자와 데이터베이스 사이에 위치합니다.
- 데이터베이스 관리와 사용자의 데이터 처리 요구를 수행합니다.
- 기능에 따른 주요 구성 요소
- 질의 처리기_Query Processor
- 사용자의 데이터 처리 요구를 해석하여 처리합니다.
- DDL 컴파일러
- DDL로 작성된 스키마 정의를 해석하고 데이터 사전에 저장합니다.
- DML 프리컴파일러
- 응용 프로그램에 삽입된 데이터 조작어를 추출하여 DML 컴파일러에게 전달합니다.
- DML 컴파일러
- DML로 작성된 데이터 처리요구를 런타임 데이터베이스 처리기가 이해할 수 있도록 분석합니다.
- 런타임데이터베이스 처리기
- 데이터 처리 요구를 데이터베이스에서 실제로 처리합니다.
- 트랜잭션 관리자
- 사용자의 접근 권한, 제약 조건 위배 여부를 확인합니다.
- 저장 데이터 관리자_Stored Data Manager
/*
- 개발자가 컴파일러가 존재하지 않는 컴퓨터에서 SQL로 작성한 코드는 DBMS로 전송됩니다.
- DBMS 내에 컴파일러가 내장되어 있어 전송 받은 SQL 코드를 컴파일합니다.
- 여러 언어가 섞여 DB로 넘어오는데 이 속에서 DML 언어만 추출하는 것이 DML 프리컴파일러입니다.
- 다른 개발자가 전송한 SQL 코드가 동일한 경우 컴파일된 코드를 재사용하여 데이터를 출력합니다.
- 로그인에 주로 사용됩니다.
- 명령문이 DML일 경우 DML 컴파일러가 런타임 데이터베이스 처리기에 코드를 전송합니다.
> 동시성에 대한 문제를 트랜잭션 관리자가 있을 수 있습니다.
- 동일 데이터는 엑세스에 순서를 부여해야 합니다.
- 저장 데이터 관리자가 데이터 사전으로 접근하여 데이터 위치를 확인한 후
데이터베이스에 접근합니다.
*/
'Oracle Database' 카테고리의 다른 글
Database_06_오라클 데이터베이스 사용하기 (0) | 2023.07.08 |
---|---|
Database_05_관계형 데이터베이스 (0) | 2023.07.07 |
Database_04_데이터베이스 논리적 모델 (0) | 2023.07.06 |
Database_03_데이터베이스 개념 모델링, 개체-관계 모델 (0) | 2023.07.05 |
Database_02_데이터 모델링 (0) | 2023.07.04 |