본문 바로가기

kosta_이론

25.03.26 데이터베이스

데이터 - 현실 세계에서 단순히 관찰하거나 측정해 수집한 사실이나 값

정보 - 데이터를 의사결정에 활용할 수 있도록 처리해 체계적으로 조직한 결과물 > 데이터에 의미부여

지식 - 사물이나 현상에 대한 이해

 

데이터베이스 - 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합한 것

db시스템 - 데이터의 검색과 변경 작업을 주로 수정함

  변경 -> 시간에 따라 변하는 데이터 값을 db에 반영하기 위해 수행하는 삽입 삭제 수정 등의 작업

 

통합된 데이터 (integrated data)

   데이터 통합하는 개념 -> 중복을 최소화해 데이터 불일치 현상 제거

저장된 데이터 (stored data)

   문서로 저장된 데이터가 아닌 저장장치(디스크, 테이프 등) 에 저장된 데이터

운영 데이터 (operational data)

   조직의 목적을 위해 사용되는 데이터 ->검색을 할 목적으로 저장된 데이터

공용 데이터 (shared data)

   한 사람 / 업무가 아닌 공동으로 사용되는 데이터

>>데이터베이스는 특정 조직의 여러 사용자가 공유해 사용할 수 있도록 통합해 저장한 운영 데이터 집합

 

데이터베이스 특징

  • 실시간 접근성 
  • 계속적인 변화 (삽입, 삭제, 수정 등에 바뀐 데이터 값을 저장)
  • 동시공유
  • 내용에 따른 참조 (데이터 값에 따라 참조됨)

데이터 분류

  • 정형 데이터 - 구조화된 데이터 (엑셀, 관계 db 테이블)
  • 반정형 데이터 - 구조에 따라 저장된 데이터 (trml, xml, json 등)
  • 비정형 데이터 - 정해진 구조 없이 저장된 데이터

파일시스템

데이터를 파일 단위로 서버에 저장 > 응용 프로그램별로 필요한 데이터를 별도 파일로 저장

중복저장 위험, 응용 프로그램이 파일에 종속적, 동시공유 회복 기능 부족, 개발 쉽지 않음

데이터의 일관성 훼손 가능성 있음

 

데이터베이스 시스템 

dbms 도입해 데이터를 통합 관리하는 시스템 (데이터 가진쪽 - 서버 / 데이터 요청 - 클라이언트)

dbms가 파일 다뤄 데이터 일관성 유지, 복구, 동시 접근 제어 등의 기능 수행

중복 줄이고 표준화해 무결성 유지

 

웹 데이터베이스 시스템

db를 웹 브라우저에서 사용할 수 있도록 서비스하는 시스템 > 불특정 다수를 상대

 

분산 데이터베이스 시스템

여러 곳에 분산된 dbms서버를 연결해 운영하는 시스템 > 대규모 응용 시스템에 사용

 

데이터 저장 방법

프로그램 내부에 저장 - 프로그램 내 구조체 변수에 저장 > 신규 데이터 생성 시 수정 후 다시 컴파일

파일 시스템 사용 - 파일로 데이터 불러와 구조체 배열 변수에 저장 > 수정 필요x , 동시 공유 불가능

dbms 사용 - 데이터 정의, 값을 dbms가 관리 > 데이터 구조 변경되어도 다시 컴파일 x

데이터 베이스 시스템 구성

 

SQL

  • 데이터 정의어 ( DDL)
  • 데이터 조작어 (DML)
  • 데이터 제어어 (DCL)

사용자

  • 일반 사용자
  • 응용 프로그래머 - 일반 사용자가 사용할 프로그램 제작 (사용자 인터페이스, 데이터 관리 로직)
  • SQL 사용자 (SQL사용해 업무 처리)
  • 데이터베이스 관리자(DBA) - DB 시스템 총괄(설계, 구현, 유지보수) +사용자 통제, 보안, 모니터링 등

DBMS

사용자와 데이터베이스 연결시켜주는 SW > DB 생성, 공유, 관리, 지원

SQL 번역하는 DML/DDL 컴파일러 + 응용프로그램 embedded DML ,컴파일러로 구성

  + sql 처리하는 알고리즘(질의처리기)

프랜잭션 관리자, 파일 관리자, 버퍼 관리자 존재

  • 데이터 정의 - 데이터 구조 정의 및 삭제, 변경 기능 수행
  • 데이터 조작 - 데이터 조작하는 sw가 요청하는 데이터 관리 작업 지원
  • 데이터 추출 - 사용자가 조회하는 데이터 혹은 응용 프로그램의 데이터 추출
  • 데이터 제어 - db 사용자 생성 및 모티터링으로 접근 제어 + 백업, 회복, 동시성 제어 등

db 개념적 구조

 외부 단계
• 일반 사용자나 응용 프로그래머가 접근하는 계층으로 전체 데이터베이스 중에서 하나의 논리
적인 부분을 의미
• 여러 개의 외부 스키마(external schema)가 있을 수 있음
• 서브 스키마(sub schema)라고도 하며, 뷰(view)의 개념임
 개념 단계
• 전체 데이터베이스의 정의를 의미
• 통합 조직별로 하나만 존재하며 DBA가 관리함
• 하나의 데이터베이스에는 하나의 개념 스키마(conceptual schema)가 있음
 내부 스키마
• 물리적 저장 장치에 데이터베이스가 실제로 저장되는 방법의 표현
• 내부 스키마(intenal schema)는 하나
• 인덱스, 데이터 레코드의 배치 방법, 데이터 압축 등에 관한 사항이 포함됨

 

외부/개념 매핑

• 사용자의 외부 스키마와 개념 스키마 간 매칭

외부 스키마의 데이터가 개념 스키마의 어느 부분에 해당하는지 대응시킴

 

개념/내부 매칭

개념 스키마 데이터가 내부 스키마 물리적 장치 어디에 어떤 방법으로 저장되는지 대응시킴

 

데이터 독립성

논리적 데이터 독립성

외부단계와 개념단계 사이 독립성

개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원

논리적 구조가 변경되어도 응용 프로그램에는 영향이 없도록 하는 개념

개념 스키마의 테이블을 생성하거나 변경하여도 외부 스키마가 직접 다루는 테이블이 아니면 영향 없음

물리적 데이터 독립성

개념 단계와 내부 단계 사이의 독립성

저장장치 구조 변경과 같이 내부 스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원

성능 개선을 위하여 물리적 저장 장치를 재구성할 경우 개념 스키마나 응용 프로그램 같은 외부 스키마에 영향 없음

물리적 독립성은 논리적 독립성보다 구현 쉬움

 

 

관계 데이터 모델

수학의 집합이론에 근거해 튼튼한 이론적 토대를 가짐 > 비절차적인 언어로 원하는 데이터 쉽게 표현

 

릴레이션 - 행과 열로 구성된 테이블

테이블 - 릴레이션의 시각적 표현 방법

관계 - 릴레이션 내 생성되는 관계

릴레이션 내 데이터들의 관계 / 릴레이션 간 관계

 

스키마 - 관계 데이터베이스 릴레이션에 대한 구성과 정보에 대한 기본적인 구조 정의

테이블 첫행(헤더)에 속성과 정보 담고있음

인스턴스 - 실제로 저장되는 데이터 집합

 

릴레이션 스키마 - 릴레이션에 담길 정보 정의

스키마 요소 

  속성 - 릴레이션 스키마 열

  도메인 - 속성이 가질 수 있는 값의 집합

  차수 - 속성의 개수

 

스키마 표현 - 릴레이션 이름(속성1 : 도메인1, 속성2 : 도메인2 ...)

 

릴레이션 인스턴스 - 릴레이션 스키마에 실제로 저장된 데이터 집합

인스턴스 요소

투플 - 릴레이션 행

카디날리티 - 투플의 수

특징

•속성은 단일값 가짐

각 속성의 값은 도메인에 정의된 값만 가짐 > 모두 단일값

•속성 이름은 유니크함

•한 속성의 값은 모두 같은 도메인 값을 가짐

•속성의 순서는 상관없음

•중복 투플은 불가

•투플의 순서는 상관 없음

 

 

특정 투플을 식별할 때 사용하느 속성 혹은 속성의 집합

릴레이션은 중복된 투플 허용 불가 - 하나 혹은 하나 이상 값이 달라야 함 >>서로 구별 가능해야함

릴레이션 간 관계를 맺는데 사용

 

슈퍼키

투플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합

>유일하게 식별할 수 있는 값이면 모두 슈퍼키 가능

 

후보키

투플을 유일하게 식별할 수 있는 속성의 최소 집합

2개 이상의 속성으로 이루어진 키 = 복합키

 

기본키

여러 후보키 중 하나를 선정해 대표로 삼는 키

후보키 1개 = 해당키가 기본키

여러개 = 릴레이션 특성 반영해 하나 선택

고려사항

•릴레이션 내 투플 식별 가능한 고유한 값 가짐

•null값 불가능

•키 값 변동 일어나지 않아야 함

•최대한 적은 수의 속성을 가져야 함

•향후 문제가 없어야 함

기본키는 보통 밑줄 그어 표시

 

대리키

기본키가 보안을 요하거나 여러개의 속성으로 구성되어 복잡하거나 마땅한 기본키가 없을 경우

일련번호 같은 가상 속성 만들어 기본키로 삼는 경우가 있음 = 대리키 / 인조키

 

대체키 

기본키로 선정되지 않은 후보키

 

외래키

다른 릴레이션의 기본키를 참조하는 속성

다른 릴레이션의 기본키를 참조해 관계 데이터 모델의 특징인 릴레이션 간 관계표현함

특징

관계 데이터 모델의 릴레이션 간 관계표현

다른 릴레이션의 기본키 참조

참조하고(외래키) 참조되는(기본키) 양쪽 릴레이션의 도메인이 서로 같아야 함

null값 중복값 호용

자기 자신의 기본키 참조 가능 > 외래키 사용 시 참조하는 릴레이션과 참조되는 릴레이션이 다른 릴레이션일 필요 없음

외래키가 기본키의 일부 가능

 

 

무결성 제약 조건

데이터 무결성 - 데이터베이스에 저장된 데이터의 일관성과 정확성을 지킴

종류

도메인 무결성 - 속성값과 관련된 무결성

   도메인 제약이라고도 함, 릴레이션 내 투플들이 각 속성의 도메인에 지정된 값만 가져야 함

   > 데이터 형식, 널(null/not null), 기본값(default), 체크 등 사용

개체 무결성 

   기본키 제약이라고도 함, 기본키는 null 불가능하며 오직 하나의 값만 존재해야 함

참조 무결성

   외래키 제약이라고도 함, 릴레이션 간 참조 관계 선언하는 제약조건

   자식의 외래키는 부모 기본키와 도메인이 동일해야 하며, 자식 값이 변경될 때 부모도 제약받음

개체 무결성

   삽입 - 기본키 값이 같으면 삽입불가

   수정 - 기본키 값이 같거나 null로 수정 불가

   삭제 - 특별한 확인이 필요하지 않으며 즉시 삭제함

 

 

 

 

'kosta_이론' 카테고리의 다른 글

25.03.28 sql 고급  (0) 2025.03.28
25.03.27 sql + 연습문제  (1) 2025.03.27
25.03.25 docker  (0) 2025.03.25
25.03.13 server통신, SQL  (0) 2025.03.13
25.03.12 스트림+ , 입출력, 스레드  (0) 2025.03.12