DBMS
1. 데이터베이스 정의
:: 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 운영하는 저장된 데이터의 집합
2. DBMS
1) DBMS 란?(DataBase Management System)
(1) 데이터베이스 안에 있는 데이터를 관리하는 시스템
예) Microsoft SQL Server, MariaDB, ORACLE, Acess, MySql
2) DBMS의 역할
(1) 여러 사용자와 응용프로그램들이 데이터베이스를 공유할 수 있도록 DBMS가 도와준다.
(2) 한 사람이 단독으로 사용하는 것이 아닌 여러 사람이 같이 사용하기 때문에 발생하는 문제를 모두가 원활하게 사용할 수 있도록 도와주는 역할을 한다.
(3)사람들이 원하는 형태로 특정한 데이터를 다시 다양한 형태로 바꿔서 제공하는 역할을 한다.
3) DBMS의 장점
(1) 사용자의 질의를 빠르게 수행할 수 있는 인덱스 등의 접근 경로를 DBMS가 자동으로 선택하고 관리한다.
• 질의 : select, insert 같은 것을 질의라고 한다.
• 인덱스 : 많은 데이터들 사이에서 우리가 원하는 데이터를 뽑아내기 위해 사용하는 라벨이라고 생각하면 된다.
(2) 권한이 없는 사용자로부터 데이터베이스를 보호할 수 있다.
(3) 여러 사용자가 원하는 형태로 데이터를 다양하게 변형해서 제공한다.
• 원하는 것은 각각 다르지만 안에 저장된 데이터는 똑같은 것이 데이터베이스의 특징
(4) 데이터베이스가 만약 고장 난 다면 데이터베이스를 고장 전으로 회복하는 기능도 한다
(5) 무결성 제약조건을 활용하여 데이터를 자동으로 유지한다
ex) 중복된 데이터 , 비정상 적으로 범위를 벗어난 데이터, 기존의 규칙을 어긋나는 데이터 등을 막음
(6) 프로그램에 영향을 주지 않으면서 데이터베이스 구조를 변경할 수 있다.
- 위 내용을 정리하자면 중복, 불일치, 시스템을 개발할 때 유지비용을 줄일 수 있다.
- 공유를 하고 있기 때문에 여러 사람이 접근할 수 있다
- 특정한 데이터를 저장하기 위한 방법을 표준화하기 좋다!
- 보안과 무결성에 뛰어남
- 고장으로부터 데이터베이스를 스스로 회복하여 데이터를 보호
4) DBMS의 발전 과정
5) DBMS의 종류
(1) 계층 DBMS
1) 가장 초기에 개발된 DBMS 모델
2) 특정 유형에는 빠른 속도와, 높은 효율성을 보인다.
3) 트리 형태로 모델링이 된다.
4) 문제점 :: 생성될 때 관계가 정의되어야 하고 한번 구조를 정의하면 변경이 어렵다는 단점이 있다.
(2) 네트워크 DBMS
1) 레코드들의 관계가 간선으로 표시
2) 그래프 기반 - 서로 관계가 있는 것들은 모두 수평적으로 연결
3) 문제점 :: 구조 변경이 어렵고 하나를 수정하면 다른 관계들이 깨져버릴 수 있어서 독립성 제한이 생긴다.
(3) 관계 DBMS
1) 현재 가장 많이 사용되는 DBMS로 모델이 간단하고 이해하기 쉽다.
2) 사용자는 원하는 것만 명시하면 데이터 저장 등은 DBMS가 자동으로 결정해준다.
ex) MySQL, Oracle 등
(4) 객체지향 DBMS
1) 80년대 후반 객체지향 프로그래밍 등장과 함께 나왔다.
2) 데이터와 프로그램을 그룹화
3) 복잡한 객체를 이해하기 쉽다
4) 유지 변경에 용이하다
5) 단점 :: 속도가 관계 DBMS보다 느리고 기존 SQL과 호환이 안 되는 문제가 있다.
ex) OpenODB, ONTOS, GemStone 등
5) 데이터베이스 사용자
(1) 데이터베이스 관리자 (DBA :: Database Administration)
1) 데이터 정의 제어 관리 백업과 회복, 표준화 무결성 제약조건을 명시
(2) 응용 프로그래머
1) 일반 사용자가 DB를 활용할 수 있도록 인터페이스 제작
ex) 웹 개발자, 프로그래머
(3) 최종 사용자 (캐주얼, 일반)
1) 웹페이지, sql 등을 활용하며 삽입 삭제 수정을 간단하게 할 수 있는 사용자
* 다른 사람이 검색 삭제 수정할 수 있도록 인터페이스를 제공할 수 없다는 게 응용프로그래머와 차이가 있다
6) DBMS 구조
(1) 상용 DBMS의 구조(ANSI/SPARC 아키텍처)
1) 외부 단계
- DB 사용자가 갖는 뷰 동일한 데이터에 대하여 서로 다른 표현들을 제공할 수 있다.
ex) 주문자: (업체명, 메뉴, 가격)
배달원: (이름, 주소, 전화번호)
음식점: (이름, 주소, 전화번호)
2) 개념 단계 :: 조직체 정보 모델, 물리 구현 고려 X
- 어떤 데이터가 저장되어 있나?
- 데이터 간의 관계
- 무결성 제약조건 등을 명시
- 하나의 개념 스키마가 존재한다.
3) 내부 단계 :: 실제 물리적 데이터 구조 스키마
- 인덱스, 해싱 등 접근 경로, 압축
ex) 파일을 비순서로 저장한다.
* ANSI/SPARC 아키텍처에서 3가지의 단계로 쪼개서 설계한 이유는 논리적 데이터 독립성( ex: 테이블 구조 변경 -> 사용자의 뷰 변경 X )과 물리적 데이터 독립성( ex: 파일 저장 구조 변경, 인덱스 생성 & 삭제 )을 지키기 위해서
'Dev > DataBase' 카테고리의 다른 글
[SQL Injection] 공백 우회방법 (WHITE SPACE) (0) | 2021.10.17 |
---|---|
[MySQL]문자열 자르기 함수 (LEFT, MID, RIGHT, SUBSTR, SUBSTRING) (0) | 2021.10.17 |
데이터베이스 용어 (0) | 2021.05.15 |
데이터베이스 유형 (0) | 2021.02.23 |
댓글
이 글 공유하기
다른 글
-
[SQL Injection] 공백 우회방법 (WHITE SPACE)
[SQL Injection] 공백 우회방법 (WHITE SPACE)
2021.10.17 -
[MySQL]문자열 자르기 함수 (LEFT, MID, RIGHT, SUBSTR, SUBSTRING)
[MySQL]문자열 자르기 함수 (LEFT, MID, RIGHT, SUBSTR, SUBSTRING)
2021.10.17 -
데이터베이스 용어
데이터베이스 용어
2021.05.15 -
데이터베이스 유형
데이터베이스 유형
2021.02.23