데이터베이스 강의 정리

wkahd01·2021년 9월 9일
1

DB

목록 보기
1/1

0905 데이터베이스

데이터베이스?

여러 사람이 공유하고 사용할 목적으로 통합 관리되는 정보의 집합이다. 논리적으로 연관된 하나 이상의 자료의 모음으로 그 내용을 고도로 구조화함으로써 검색과 갱신의 효율화를 꾀한 것이다. 즉, 몇 개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체라고 할 수 있다.

정형화 데이터

비정형 데이터(unstructured data, unstructured information, 비정형 정보), 비구조화 데이터, 비구조적 데이터는 미리 정의된 데이터 모델 없거나 미리 정의된 방식으로 정리되지 않은 정보를 말한다.

반대로 정형 데이터는,
정형 데이터는 데이터베이스의 정해진 규칙(Rule)에 맞게 데이터를 들어간 데이터 중에 수치 만으로 의미 파악이 쉬운 데이터들을 보통 말한다.

출처: https://needjarvis.tistory.com/502 [자비스가 필요해]

DB 시스템

자료를 데이터베이스에 저장 관리하며 필요한 정보를 제공하는 컴퓨터 기반 시스템이다. 데이터베이스 시스템의 구성요소는 데이터베이스, DBMS, 사용자, 하드웨어이다.

Structured Query Language: SQL

SQL[시퀄 또는 에스 큐 엘]은 데이터베이스에서 정보를 얻거나 갱신하기 위한 표준화된 언어로서 대화형으로 이용하거나, 또는 프로그램 내에 삽입하여 쓸 수 있다.
데이터베이스 시스템에서 자료를 처리하는 용도로 사용되는 구조적 데이터 질의 언어. 에스큐엘, 혹은 시퀄이라고 읽는다.

관계데이터베이스

관계 모델에서 관계(relation)는 동일한 구조로 이루어진 튜플의 집합을 말한다. 값으로서의 관계를 ‘관계값’(relation value)라고 하며, 관계값을 값으로 가지는 변수를 ‘관계변수’(relvar, relation variable)라고 한다.

속성명과 연결된 도메인(열)들을 정의한 것은 ‘관계 스키마’(relation schema)라고 불린다.[1][2] 때로는 관계 스키마는 관계 그 자체의 이름에 포함되기도 한다. 이러한 관계 스키마는 ‘테이블 스키마’(table schema)로도 불리기도 한다.[3][4]

관계 데이터베이스의 데이터베이스 언어인 SQL에서는 관계 변수와 거의 같은 의미로 테이블이라는 용어가 사용되고 있다. 문맥에 따라서 ‘관계변수’를 ‘관계’라고 부르기도 하고 ‘관계값’을 관계라고 부르기도 한다.

DBMS

데이터베이스 관리 시스템(영어: database management system, DBMS)은 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다. DBMS은 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다.

선언형 프르로그래밍 언어

선언형 프로그래밍 언어는 선언형 프로그래밍을 사용하여 해법을 정의하기보다는 문제를 설명하는 고급언어이다. 명령형 프로그래밍 언어는 "어떤 방법"으로 할 것인지에 중점을 두는 반면에, 선언형 프로그래밍 언어는 "무엇"을 할 것인지에 중점을 두고 있다. 이 용어는 전체적으로 명확하지 않아서 때로 물의를 일으키기도 한다. 그래서 때로 유행어로 사용되기도 한다.
=> 이런 특징으로 인해 DB에서 사용

0909 데이터베이스

SQL

데이터베이스 언어 SQL 문법의 종류는 다음 세 가지로 대별된다.

  • 데이터 정의 언어 (DDL : Data Definition Language)
  • 데이터 조작 언어 (DML : Data Manipulation Language)
  • 데이터 제어 언어 (DCL : Data Control Language)

스키마?

데이터베이스를 구성하는 레코드의 크기, 키(key)의 정의, 레코드와 레코드의 관계, 검색 방법 등을 정의한 것.

Logical DB Schema

  • 외부 스키마
    실세계에 존재하는 데이터들을 어떤 형식, 구조, 배치 화면을 통해 사용자에게 보여줄 것인가

  • 개념 스키마
    데이터 베이스의 전체적인 논리적 구조
    데이터 베이스에 실제로 어떤 데이터가 저장되었으며 데이터간의 관계는 어떻게 되는가

  • 내부 스키마
    데이터 베이스의 물리적 저장구조를 정의, 디스크에는 어떤 구조로 저장할 것인가

출처: https://jwprogramming.tistory.com/47 [개발자를 꿈꾸는 프로그래머]

Relational DB(관계형 데이터베이스)

=== 그냥 DataBase 라고도 말한다.

정형화된 Data를 다룸

  • 데이터 무결성 보장: Integrity
  • 데이터 퀄리티 보장

=> 객체(키 : 값)들로 이루어져있다.

무결성

어떻게 무결성을 보장할 것인가?
"키"가 존재하지 않는다면, value 값을 불러올 수 없다.

참조 무결성

  • 기본 키와 참조 키 간의 관계가 항상 유지됨을 보장
  • 참조되는 테이블의 행을 이를 참조하는 참조키가 존재하는 한 삭제될 수 없고, 기본키도 변경될 수 없다

영역 무결성

개체 무결성

출처: https://jwprogramming.tistory.com/53 [개발자를 꿈꾸는 프로그래머]

뷰 == virtual tabel

뷰는 다른 테이블을 기반으로 만들어진 가상의 테이블을 의미

데이터베이스 사용자는 [그림 1]과 같이 하나의 실제 데이터 (테이블)로부터 가상의 논리적 구조 (뷰)를 생성하여 조작할 수 있다. 뷰를 이용하면, 실제 데이터를 다수의 테이블에 분할하여 저장할 필요 없이 하나의 테이블에서 효율적으로 관리할 수 있으며, 이와 동시에 각각의 응용 프로그램이 원하는 서로 다른 논리적 구조 또한 손쉽게 제공할 수 있다.

  • 논리적 데이터 독립성 (logical data independence): 각각의 응용 프로그램들이 서로 영향을 받지 않으면서 응용 프로그램이 원하는 논리적 구조를 제공할 수 있는 능력

  • 물리적 데이터 독립성 (physical data independence): 응용 프로그램에 영향을 미치지 않고 데이터의 물리적 구조를 변경할 수 있는 능력

https://untitledtblog.tistory.com/124

정규화

정규화를 통해 불필요한 데이터(redundancy)를 없앨 수 있고, 삽입/갱신/삭제 시 발생할 수 있는 각종 이상현상(Anamolies)들을 방지할 수 있다

"3정규화" ->
https://yaboong.github.io/database/2018/03/09/database-normalization-1/

목적
1. 중복 제거
2.

출처: https://3months.tistory.com/193 [Deep Play]

profile
꾸준하게 공부하기

0개의 댓글