데이터 베이스 : 응용 시스템들이 공유해서 사용하는 데이터들이 구조적으로 통합된 모임.
데이터 vs 정보
데이터는 프로그램과 질의에 의해 정보로 변환
데이터베이스 특징
데이터 베이스는 데이터의 대규모 저장소로서, 여러 사용자들이 동시에 사용됨.
중복 최소화 하면서 통합
데이터에 관한 설명(데이터베이스 스키마 , 메타데이터) 포함
데이터베이스 개요
데이터베이스 관리 시스템 (DBMS) : 데이터베이스를 정의하고, 질의어를 지원하고, 리포트를 생성하는 등의 작업을 수행하는 소프트웨어
데이터베이스 스키마 : 전체적인 구조, 내포라고 부름
데이터베이스 상태 : 특정 시점의 데이터베이스의 내용, 시간에 따라 바뀜, 외연이라고 부름
DBMS의 구성 요소
저장소에 데이터베이스랑 메타데이터인(시스템 카탈로그(스키마 같은거))
DBMS : 데이터베이스 생성, 사용자가 질의, 수정 가능하게 해주는 소프트웨어 패키지
파일 시스템 vs DBMS
DBMS가 나오기전에는 파일 시스템을 통해 데이터를 관리해 왔음.
m대 n으로도 대응된다.
응용 프로그램에서 정의된 데이터 정의에 따라 데이터 화일 사용.
따라서 새로운 필드를 추가하거나 제거하려면 그 화일에 대응되는 모든 프로그램 수정해야한다.
독립성 떨어짐
데이터가 많은 화일에 중복해서 저장됨.
동시성 제어 안됨, 질의어 제공 x, 데이터 공유와 융통성 부족 등 단점 많음.
DBMS는 이러한 단점을 개선했다.
이러한 좋은 기능들 제공한다. ㅇㅇ
아래와 같은 방식으로 DBMS 통해서 데이터베이스 사용
DBMS의 발전 과정
데이터모델 : 데이터의 구조를 기술하는것을 개념들의 집합
데이터 모델의 분류
1. 고수준 또는 개념적 데이터 모델
사람이 인식하는 것과 유사하게 데이터베이스의 전체적인 논리적 구조 명시
ex) 엔티티-관계 데이터 모델, 객체 지향 데이터모델
2. 표현 데이터 모델
ex) 관계 데이터 모델
3. 저수준 또는 물리적인 데이터 모델
DBMS 발전 과정
요즘건 다 객체 관계 DBMS
계층 DBMS
계층 트리로 표현
효율이 좋긴한데 특수한 경우에만 알맞게 적용됨
one to many 잘 처리하나 many-to-many 관계는 그렇지 못함
네트워크 DBMS
계층이 표현못하는 many-to-many 관계 표현
근데 레코드들이 링크로 연결되어있어서 레코드 구조를 변경하기 어려움
관계 DBMS
젤 많이 쓰는거
모델이 간단하여 사용자가 이해하기 쉬움
사용자가 what 원하는것만 결정하면 알아서 DBMS가 결정함.
ex) 오라클 SQL 등등
객체지향 DBMS
데이터와 프로그램 그룹화
복잡한 객체들 유지변경 용이
객체지향 개념인 집합 상속 이런게 가능하다
객체관계 DBMS
두개 통합해서 만든거
ex) 오라클
발전할수록 프로그래밍 분량이 줄어듬
DBMS 언어
데이터 정의어 (DDL)
데이터 정의어 사용해서 스키마정의
데이터 정의어로 명시된 문장이 입력되면 DBMS는 사용자가 정의한 스키마에 대한 명세를 저장
ex) SQL인 경우 CREAT ALTER DROP 등등
데이터 조작어(DML)
데이터 조작어로 데이터베이스 내의 원하는 데이터를 검색하고 수정하고 삽입하고 삭제할 수 있음
절차적 언어 비절차적 언어로 나눌수 있음
절차적 언어는 어떤 절차로 data를 찾을 것인지 명시해야됨
비절차적 언어는 원하는 데이터만 적으면 됨
사용자입장에선 비절차적 언어가 더 좋음
관계 DBMS에서 사용되는 SQL은 대표적인 비절차적 언어
es) SELECT UPDATE 등
데이터제어어(DCL)
데이터 제어어를 사용하여 데이터베이스 트랜잭션을 명시하고 권한을 부여하거나 취소
이건 뒤에서 배움
DBMS 사용자
데이터베이스 관리자 DBA
응용 프로그래머
데이터베이스 트랜잭션(Database Transaction)은 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위이다
기작성 트랜잭션 (canned transaction) : 바로 사용가능한 트랜잭션, 즉 입력 넣으면 바로 결과를 볼 수 있다.
애드혹(AD-Hoc) <-> 기작성 트랜잭션
애드혹은 정해진게 아니라 그때그때 상황에 따라서 작성하는 질의
ANSI/SPARC 아키텍쳐
표준화 기구인 ANSI에서 ANSI/SPARC 아키텍쳐 제안
외부, 개념, 내부 3단계로 이루어져 있다.
사용자는 외부 단계만 보게된다.
외부와 개념 사이에 외부/개념 사상
개념과 내부 사이에 개념/내부 사상이 존재한다.
위로 올라갈 수록 추상화 수준 증가
위 그림은 3개의 개념단계의 3개의 테이블에서 일부 애트리뷰트를 외부 뷰로 정의된 예다.
사용자는 3개의 테이블이 있는지 모름 그냥 필요한 것만 준다.
각 사용자에 알맞게 만들어서 줌. (EMO_NAME과 ASSIGNMENT가 다르다)
ex) 지하철 노선도
전체 지하철 노선도 -> 개념 단계(공동체의 뷰)
사용자가 관심있는 노선 -> 외부단계(특정 노선에 대한 정보 )
데이터 독립성 : 상위 단계의 스키마 정의에 영향을 주지 않으면서 어떤 단계의 스키마 정의를 변경할 수 있음을 의미
- 논리적인 데이터 독립성
- 물리적인 데이터 독립성
데이터베이스 시스템 아키텍처
데이터베이스 관리자가 데이터베이스 정의어를 사용해서 데이터베이스 생성하면 데이터 정의어 컴파일러가 이를 생성하여 시스템 카탈로그에 저장한다.
최종사용자 또는 프로그래머가 기작성 트랜잭션/질의를 사용하면 질의처리기를 통해 pasing 한 후 런타임 데이터베이스 관리기를 통해 처리됨. 이때 트랜잭션 관리기와 긴밀하게 작용
데이터베이스 API
서로 다른 DBMS들끼리 입출력이 가능해짐.
중앙 집중식 데이터베이스 시스템
데이터베이스 시스템이 하나의 컴퓨터 시스템에서 운영됨
분산 데이터베이스 시스템
네트워크로 연결된 여러 사이트에 데이터베이스 자체가 분산되어 있음.
클라이언트-서버 데이터베이스 시스템
클라이언트에서 사용자 인터페이스나 응용프로그램 수행
클라이언트 서버 아키텍처는 2층 모델 3층 모델로 나눠진다.
2층 모델은 응용의 논리가 퍼져있는데 3층모델은 응용의 논리가 응용서버에 있음
2층 모델에 비해 3층 모델이 가지는 장점은 서비스 요청과 응답이 클라이언트와 응용서버간에만 통신해서 성능 좋아짐.
질문
상황 : DBMS AA ODBC를 제공해준다. 근데 내가 만든 응용프로그램은 JDBC를 통해서 만들었다 어떻게 접근할까?
브릿지 통해서 연결한다?
'학교공부 > 데이터베이스' 카테고리의 다른 글
데이터베이스 4 -5 (0) | 2020.10.21 |
---|---|
실습 모음 (0) | 2020.10.21 |
데이터베이스 4-2 SQL (0) | 2020.10.06 |
데이터베이스 4장 관계대수 (1) | 2020.09.20 |
데이터 베이스 2장(관계 데이터 모델과 제약조건) (0) | 2020.09.20 |