DB 기초

최지홍·2022년 3월 16일
0

매일 공부

목록 보기
26/40

DB

출처: https://www.oracle.com/kr/database/what-is-database/

  • DB: 일반적으로 컴퓨터 시스템에 전자적으로 저장되는 구조화된 정보 또는 데이터의 조직화된 모음이다. 데이터베이스는 일반적으로 데이터베이스 관리 시스템(DBMS)
    에 의해 제어된다. 연결된 애플리케이션과 함께 데이터와 DBMS를 하나로 묶어 데이터베이스 시스템이라고 하며 단축하여 데이터베이스라고도 한다.
  • DBMS: 데이터베이스에는 일반적으로 데이터베이스 관리 시스템(DBMS)으로 알려진 포괄적인 데이터베이스 소프트웨어 프로그램이 필요하다. DBMS는 데이터베이스와 최종 사용자 또는 프로그램 간의 인터페이스 역할을 하여 사용자가 정보의 구성 및 최적화 방법을 검색, 업데이트 및 관리할 수 있게 해준다. 또한 DBMS는 데이터베이스의 감독 및 제어가 용이하여 성능 모니터링, 튜닝, 백업, 복구 같은 다양한 관리 작업이 가능하다.
  • 인기 데이터베이스 소프트웨어 또는 DBMS로는 MySQL, Microsoft Access, Microsoft SQL Server, FileMaker Pro, 오라클 데이터베이스 및 dBASE가 있다.
  • RDBMS: 관계형 데이터베이스는 서로 관련된 데이터 포인트에 대한 액세스를 저장 및 제공하는 데이터베이스 유형이다. 관계형 데이터베이스는 테이블에 데이터를 직관적이고 간단하게 표현하는 방법인 관계형 모델을 기반으로 한다. 테이블 기반의 DBMS로 데이터를 테이블 단위로 관리하며 하나의 테이블은 여러 개의 Column으로 구성된다. 관계형 데이터베이스에서 테이블의 각 행은 키라는 고유 ID가 포함된 레코드이다. 테이블의 열에는 데이터의 속성이 들어 있으며, 각 레코드에는 일반적으로 각 속성에 대한 값이 있으므로 데이터 포인트 간의 관계를 손쉽게 설정할 수 있다. 정규화를 통해 중복 데이터를 최소화 시키고, 여러 테이블에 분산되어 있는 데이터를 검색 시 join을 이용해 필요한 데이터를 검색한다.
  • SQL: 데이터를 쿼리, 조작 및 정의하고 액세스 제어를 제공하기 위해 거의 모든 관계형 데이터베이스에서 사용되는 프로그래밍 언어

정의

  • 통합된 데이터(Integrated Data): 자료의 중복을 배제한 데이터의 모임으로, 여러 곳에서 사용하던 데이터를 통합하여 하나로 저장한 데이터를 의미한다.
  • 저장된 데이터(Stored Data): 컴퓨터가 접근할 수 있는 저장장치에 저장된 자료이다.
  • 운영 데이터(Operational Data): 존재 가치가 확실하여 조직의 고유 업무를 수행하기 위한 필수 자료이다.
  • 공용 데이터(Shared Data): 데이터는 어느 순간이라도 둘 이상의 프로그램이나 사람이 동시 사용 가능

특징

  • 실시간 접근성(Real-Time Accessibility): 실시간 서비스로 수시적이고 비정형적인 질의(조회)에 대하여 실시간 처리에 의한 응답이 가능해야 한다.
  • 지속적인 변화(Continuous Evolution): 데이터베이스의 상태는 동적이다. 데이터베이스에 저장된 내용은 어느 한 순간의 상태를 나타내지만, 값은 항상 바뀐다. 즉, 새로운 데이터의 삽입(Insert),삭제(Delete),갱신(Update)로 항상 최신의 데이터를 유지한다.
  • 동시 공유(Concurrent Sharing): 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 한다.
  • 내용에 의한 참조(Content Reference): 데이터베이스에 있는 데이터를 참조할 때 데이터 레코드의 주소나 위치에 의해서가 아니라, 사용자가 요구하는 데이터 내용으로 데이터를 찾는다.

용어 정리

출처: https://1-day-1-coding.tistory.com/2, https://velog.io/@yejin20/DB-DB-용어-정리

  • Column - Attribute - Field - Degree
  • Row - Tuple - Record - Cardinality
  • Table - Relation
  • Schema: 데이터베이스의 구조를 기술한 것으로 개체, 속성, 관계 등을 정의한 것이다.
    • 외부 스키마(사용자 뷰): 사용자의 입장에서 정의한 데이터베이스의 논리적 구조이다. 데이터들을 어떤 형식, 구조, 화면을 통해 사용자에게 보여줄 것인가에 대한 명세를 말하며 하나의 데이터베이스에는 여러개의 외부 스키마가 있을 수 있다. 일반 사용자는 SQL을 이용하여 DB를 쉽게 사용할 수 있다. 응용 프로그래머는 프로그래밍 언어를 사용하여 DB에 접근한다.
    • 개념 스키마(전체적인 뷰): 조직체 전체를 관장하는 입장에서 DB를 정의한 스키마이다. DB에 대한 모든 논리적 구조를 기술하기 때문에 데이터베이스에 하나만 존재하며, 통상 스키마 라고 하면 개념 스키마를 일컫는다.
    • 내부 스키마: 물리적 저장장치의 입장에서 본 데이터베이스 구조이다. 실제로 데이터베이스에 저장될 레코드의 물리적인 구조, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
  • Entity: 현실 세계에 존재하는 것을 데이터베이스 상에서 표현하기 위해 사용하는 추상적 개념
  • Key: 튜플 구분자
    • 후보키(Cardidate Key): 테이블을 구성하는 속성들 중에서 유일 식별 가능 집합
      • 기본키로 사용할 수 있는 것들을 의미
      • 반드시 하나 이상 존재
      • 유일성과 최소성을 만족시켜야 함
    • 기본키(Primary Key): 후보키에서 선택한 주 키
    • 슈퍼키(Super Key): 유일성을 만족하는 집합으로 최소성은 만족하지 못함
    • 외래키(Foreign Key): 릴레이션 간 기본키를 참조하는 속성으로 테이블 간 관계를 나타내기 위해 사용한다.

SQL

  • DDL(Data Definition Language): 데이터 정의어
    • 데이터베이스 객체의 구조를 정의
    • CREATE: 데이터베이스 객체 생성
    • ALTER: 데이터베이스 객체 수정
    • DROP: 데이터베이스 객체 삭제
  • DML(Data Manipulation Language): 데이터 조작어
    • 데이터 조작 기능
    • CRUD(Create, Read, Update, Delete)
    • INSERT(C): 데이터 입력(INSERT INTO 테이블이름 VALUES 값)
    • SELECT(R): 데이터 조회
    • UPDATE(U): 데이터 수정(UPDATE 테이블 SET 내용)
    • DELETE(D): 데이터 삭제(DELETE FROM 테이블)
  • DCL(Data Control Language): 데이터 제어어
    • 접근권한 정의
    • GRAND: 권한 부여
    • REVOKE: 권한 취소
  • TCL(Transaction Control Language): 트랜잭션 제어어
    • COMMIT: 실행한 쿼리 최종 적용
    • ROLLBACK: 마지막 commit 전으로 돌려서 복구

데이터 타입

  • 문자형
    • CHAR: 고정 길이. 빠름
    • VARCHAR: 가변 길이. 최대 크기를 지정할 수 있음. 느림. 하나의 데이터를 1 ~ 2 byte
    • TEXT: 최대 크기가 고정. 하나의 데이터를 무조건 2 byte로 고정
  • 숫자형
    • INT: 4 byte
  • 날짜형
    • DATETIME: 타임존에 영향받지 않음
    • TIMESTAMP: 타임존에 영향 받음
  • 제약조건
    • NOT NULL: NULL값 저장 불가
    • UNIQUE: 중복값 허용하지 않음(NULL은 허용)
    • PRIMARY KEY: 기본키 설정
    • FOREIGN KEY: 외래키 설정
    • DEFAULT: NULL 일 때의 기본값
    • CHECK: 값의 범위나 종류 지정
    • UNSIGNED: 0 또는 양수로 제한
    • AUTO INCREMENT: 필드 값을 1씩 자동 증가
profile
백엔드 개발자가 되자!

0개의 댓글