300x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- google coding competition
- DFS
- 운영체제
- 리눅스
- 프로그래머스
- AI
- kick start
- CSS
- 백준
- 딥러닝
- 동적프로그래밍
- dp
- 코딩
- 구글 킥스타트
- 네트워크
- OS
- 순열
- BFS
- 알고리즘
- 코딩테스트
- PYTHON
- 파이썬
- nlp
- 브루트포스
- 코딩 테스트
- 킥스타트
- 그래프
- linux
- 동적 프로그래밍
- 프로그래밍
Archives
- Today
- Total
오뚝이개발자
[DB] CH1. 데이터베이스시스템(DBMS) 개괄 본문
728x90
300x250
File system에서 DB로의 전환
파일시스템의 문제점
- Redundancy(중복) : 각 파일마다 필요한 (중복되는)데이터를 각각 가지고 있어야 함
- Inconsistency(비일관성) : 데이터에 변경사항이 생기면 각 파일을 모두 수정해야 하고, 이 과정에서 data inconsistency가 발생할 수 있다.
- Data isolation(데이터 추가, 검색의 문제) : 데이터가 여러 파일에 산재하고, 파일마다 양식이 달라 일률적인 검색,추가 작업이 어렵다.
- Difficulty in accessing data : 기존의 파일시스템은 기존의 프로그램 용도에 맞게 제작되므로 다른 프로그램 개발 시에는 다시 DB 작업을 해야 함
DB 시스템의 등장 목적은?
- 위와 같은 파일시스템의 문제를 해결하기 위해
DB 시스템이란?
- 특정 업무에 필요한 서로 관련있는 다양한 형태의 데이터를 모아 놓은 집합체
DBMS(데이터베이스 관리시스템)이란?
- 사용자와 DB 사이의 통신을 매개하고, DB를 관리하는 SW(ex. 오라클, SQL, MySQL...)
Data Model 종류
- 계층 데이터 모델 : 트리 데이터 모델이라고도 하며 부모-자식 관계 가짐
- 네트워크 데이터 모델 : 망 데이터 모델이라고도 하며 그래프 형태로 표현
- 관계 데이터 모델 : 표 데이터 모델(tabular)이라고도 하며 사용이 편리해 가장 많이 사용
관계형 데이터 모델이란?
- 논리적인 relation 구조로 구성
- 사용자는 원하는 데이터(what)만 명시하고 어떻게(how) 찾을 것인지를 명시할 필요 X
- DB의 physical level과 logical level을 구분 -> 데이터 독립성 향상 + 단순한 구조
Abstraction(추상화) level(혹은 View level)에 대해 설명하시오
- Physical level : 데이터가 "어떻게(HOW)" 저장되는지에 관한 description
- Logical level : "어떤(WHAT)" record가 저장되는지 + 데이터들 간의 "관계(Relationship)"
- View level : 특정데이터를 용도에 맞게 선별적으로 보여주는 것(ex. 보안을 위해 employee의 salary를 hide)
SQL(Structured Query Language, DB제어언어)이란?
- 관계형 데이터베이스 관리시스템(RDBMS)의 데이터를 관리하기 위한 프로그래밍 언어
- DML(Data Manipulation Language)
- INSERT 정보 저장
- SELECT 정보 조회
- UPDATE 정보 수정
- DELETE 정보 삭제
- DDL(Data Definition Language)
- CREATE 테이블 생성
- DROP 테이블 삭제
- ALTER 테이블 구조 수정
- DCL(Data Control Language)
- COMMIT : 정보를 실제 DB에 저장
- ROLLBACK : 작업을 취소
응용프로그램이 DB에 접근하는 방법 두 가지 - 응용프로그램과 DBMS 간의 통신을 중간에서 번역해주어야 함
- SQL을 허용하는 language extension을 사용
- ODBC, JDBC(Java Database Connectivity, 자바에서 DB프로그래밍을 하기 위해 사용되는 API) 같은 interface를 사용
트랜잭션(Transaction)이란?
- DB에서 특정 기능을 수행하는 operation의 집합
참고자료
728x90
300x250
'CS 기초 > DB' 카테고리의 다른 글
[DB] CH7. ER 모델(Entity-Relationship Model) (0) | 2020.11.02 |
---|---|
[DB] CH5. Advanced SQL(고급 SQL) - JDBC, ODBC, 트리거(Trigger) (0) | 2020.11.02 |
[DB] CH4. intermediate SQL(중급 SQL) - View, integrity constraints (0) | 2020.11.02 |
[DB] CH3. SQL 기본 문법(Intro to SQL) (0) | 2020.10.29 |
[DB] CH2. 관계형 데이터 모델(Relational Model) (0) | 2020.10.28 |
Comments