12.23.금(DB)

유희선·2022년 12월 25일
0

TIL

목록 보기
3/29
post-thumbnail

금일 목표
1. DB 개념 이해

1. DB ) 데이터의 저장소

2. DBMS [database management systems]
1) 정의
-DB 관리 시스템
-사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 소프트웨어 시스템
-DB를 정의하다 보면, 부가적인 데이터 발생
2) 사용예시
-postgreSQL , MySQL , ORACLE DB , Microsoft SQL Server

3. Metadata (=catalog)
1) 정의
-데이터에 대한 데이터
-데이터의 부가적인 정보 확인
-DB를 정의하거나 기술하는(descriptive) data
-DBMS를 통해 저장/관리
2) 관련 종류
-데이터유형, 구조, 제약 조건, 보안, 저장, 인덱스, 사용자 그룹 등등
3) 추가설명
-대량의 정보 가운데에서 찾고 있는 정보를 효율적으로 찾아내기 위해 일정한 규칙에 따라 컨텐츠에 대하여 부여되는 데이터
-데이터를 표현하기 위한 목적 & 데이터를 빨리 찾기 위한 목적으로 사용
4) 예시
(1) HTML 태그
-html 태그 > head, body
-body > table
-table > tr
-tr > td
(2) 검색엔진
-데이터를 빨리 찾기 위한 것, 컴퓨터에서 인덱스 구실 진행
*데이터가 상위에서 하위로 나무 형태 진행

(참고) https://blog.naver.com/PostView.naver?blogId=ycpigle3t&logNo=222106742771&categoryNo=133&parentCategoryNo=0

4. DB system
-database+DBMS+연관된 applications
-문맥을 따라 DB라고 불릴 수도 있으니, 확인요망

*DBMS를 통해 query를 받아 분석하고 요청처리 진행
요청된 데이터가 어떤 형태로 되어 있는지 부가적인 정보 파악 후
요청받은 데이터를 찾아서 프로그램에 돌려주는 형태로 진행

+Query (쿼리)
1) 정의
-DB에 정보를 요청하는 것
-웹 서버에 특정한 정보를 클라이언트 요청에 의해 처리하는 것, 검색된 결과를 자유로이 조회할 수 있는 기능을 지원하는 것
2) Query문 예시
SELECT // (모든 열을) 선택하라
FROM employee // employe에서
WHERE gender = 'M' // gender = 'M'인 데이터들을
+추가 예시문
[정리가 잘 되어 있어 링크 첨부]
https://365kim.tistory.com/102

5. DATA models
1) 정의
-DB의 구조를 기술하는데 사용될 수 있는 개념들이 모인 집합
-DB 구조를 추상화해서 표현할 수 있는 수단 제공 = modeling
-여러 종류가 있으며 추상화 수준과 DB 구조화 방식이 조금씩 달라짐
-DB에서 일고 쓰기 위한 기본적인 동작들(operations) 포함
2) 분류
(1) conceptual (or high-level) data models

-일반 사용자들이 쉽게 이해할 수 있는 개념들로 이뤄진 모델
-비즈니스 요구 사항을 추상화하여 기술할 때 사용
-종류) entity-relationshoip model (=ER diagram)
(2) logical (or representational) data midels
-백엔드에서 많이 사용
-이해하기 어렵지 않으면서도 디테일하게 DB를 구조화 할 수 있는 개념들을 제공
-데이터가 컴퓨터에 저장될 때의 구조와 크게 다르지 않게 DB 구조화를 가능하게 함
-특정 DBMS나 storahe에 종속되지 않는 수준에서 DB를 구조화할 수 있는 모델
-종류) relational data model _ table 형태 [row=각각의 data, column=속성]
object data model, object-relational data model
(3) physical (or low-level) data models
-컴퓨터에 데이터가 어떻게 파일 형태로 저장되는지를 기술할 수 있는 수단 제공
-실제로 컴퓨터와 가장 밀접하게 모델링할 수 있는 방법
-Data format, data orderings, access path 등등
-access path : 데이터 검색을 빠르게 하기 위한 구조체 , e.g) index

6. Database schema
-data model을 바탕으로 database의 구조를 기술(description)한 것
-database를 설계할 때 정해지며 한 번 정해진 후에는 변경이 어려움

7. Database state
-DB에 있는 실제 데이터는 꽤 자주 바뀔 수 있음
-특정 시점에 DB에 있는 데이터를 DB state 혹은 snapshot이라고 함
-혹은 DB에 있는 현재 instances의 집합
*업데이트가 진행되면서 DB가 변경이 필요할 때 사용

8. three-schema architecture
1) 정의

-DB system을 구축하는 architecture 중의 하나
-user application으로 부터 물리적인 DB를 분리시키는 목적
-세 가지 level이 존재하며 각각의 level마다 schema가 정의되어 있음
2) 종류
(1)external schemas (or user views) at external (or view) level

-실제 사용자가 바라보는 스키마
-특정 유저들이 필요로 하는 데이터만 표현
-그 외 알려줄 필요가 없는 데이터는 숨김
-logical data model을 통해 표현
(2)conceptual schemas at conceptual level
*각각의 유저마다 필요로 하는 데이터가 달라지다보니, external과 internal level에 중복되는 데이터가 생기는 문제를 해결하기 위해 생김
-전체 DB에 대한 구조를 기술
-물리적인 저장 구조에 관한 내용은 숨김 (internal level을 추상화한 개념)
-entities, data types, relationships, user operations, constraints에 집중
-logical data model을 통해 기술
(3)internal schemas at internal level
-물리적으로 데이터가 어떻게 저장되는지 physical data model을 통해 표현
-data storage, data structure, access path 등등 물리적으로 실체가 있는 내용 기술
3) 특징
-안정적으로 DB 시스템을 운영하기 위해서 사용되는 architecture
-각 레벨을 독립시켜서 어느 레벨에서의 변화가 상위 레벨에 영향을 주지 않기 위함
-대부분의 DBMS가 three level을 완벽하게 혹은 명시적으로 나누지 않음
-데이터가 존재하는 곳을

<전체 참고>
https://www.youtube.com/watch?v=aL0XXc1yGPs [쉬운코드]

0개의 댓글