SQL Server로 배우는 DB개론과 실습

두두두·2024년 5월 1일
0

공통

목록 보기
2/2

DB

개념

  1. 통합된 데이터
    : 여러 곳에서 사용되ㄴ걸 하나로 통합
    (중복 테이터 최소화 -> 데이터 불일치 최소화)
  2. 저장된 데이터
    : 문서가 아닌 컴퓨터 장치에 저장
  3. 운영 데이터
    : 조직의 목적을 위해 사용, 업부 관련 데이터
  4. 공용 데이터
    : 동시에 공동으로 사용되는 데이터

특징

  1. 실시간 접근성
  2. 계족적인 변화
  3. 동시 공유
  4. 내용에 따른 참조

구성

  • DBMS: 데이터 관리하는 SW 시스템, 사용자와 DB연결
  • DB: 데이터 모음
  • 데이터 모델: 데이터가 저장되는 기법, 데이터가 저장되는 스타일

DBMS

  • 중복 최소화
  • 데이터 일관성 유지
  • 데이터 독립성 유지
  • 관리 기능 제공
  • 프로그램 개발 향상성 제공

SQL

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

관계 데이터 모델

: 테이블 형태로 데이터 간의 관계 표현

####릴레이션( = 테이블)
1. 구조

  • 스키마: 릴레이션의 구조 정의
    (속성: 스키마 열값, 도메인: 타입, 처수: 속성 갯수0
  • 인스턴스: 스키마에 저장된 데이터 집합
    (튜플: 인스턴스 행, 카티널리티: 튜플의 수)
  1. 특징
  • 속성은 단일 값을 가진다
  • 속성은 다른 값을 가진다
  • 한 속성의 값은 같은 타입을 가진다
  • 속성의 순서는 없다
  • 릴레이션 내의 중복된 튜플은 허용하지 않는다
  • 튜플의 순서는 없다

과계 데이터 모델

: 릴레이션에 대한 제약조건, 관계 연산을 위한 관계 대수를 정의

  • 제약조건
    : 각 릴레이션에 정의된 데이터가 가져야할 제약
  • 관계연산
    : 릴레이션을 다루는 연산규칙

무결성 제약조건


  1. : 릴레이션에서 특정 튜플을 식별할 때 사용하는 속성, 속성 집합
    (릴레이션 간의 관계를 맺을 때도 사용)
  • 슈퍼키: 튜플을 유일하게 식별할 수 있는 속성
  • 후보키: 튜플을 유일하게 식별할 수 있는 최소 집합
  • 기본키: 여러 후보키 중 하나
  • 대리키: 소프트웨어에서 임의로 생성하는 키값
  • 대체키: 기본키가 아닌 후보키
  • 외래키: 다른 릴레이션의 기본키 참조, 릴레이션 간의 관계를 나타냄
    , 양쪽의 도메인이 같아야함, 기본키값이 변동되면 같이 변동
  1. 무결성 제약조건
    : 데이터의 일관성과 정확성을 지키는 것
  • 도메인 무결성 제약조건
    : 튜플은 속성의 도메인에 지정된 값을 가져가야한다는 조건
  • 개체 무결성 제약조건
    : 릴레이션은 기본키 지정 + 기본키는 NULL X + 오직 한 값
  • 참조 무결성 제약조건
    : 릴레이션 간의 참조 관계 선언

관계 대수

: 어떤 데이터를 어떻게 찾는지에 대한 처리 절차를 명시하는 절차적 언어

  • 관계해석
    : 어떤 데이터를 찾는지만 명시하는 선언적 언어]
  1. 관계대수 연산자
  • 순수 관계연산: 셀렉션, 프로젝션, 조인, 디비젼 개명
  • 이란 집합연산: 합, 교, 차 집합, 카티션 프로덕트

SQL 기초

  • DDL(데이터 정의어)
    : 테이블, 관계 구조 생성
  • DML(데이터 조작어)
    : 데이터 검색, 삭제, 수정, 생성
  • DCL(데이터 제어어)
    : 데이터 사용 권한 관리, 트렌젝션 관리
  1. 데이터 질의어(SELECT)
SELECT [DISTINCT] 속성, ...
FROM 테이블
WHERE 조건

--DISTINCT: 중복제거
  • 집계합수
    : SUM, AVG, MIN, MAX, COUNT
  • 그룹
    : GROUP BY, whrjs: HAVING
    그룹함수 검색 속성에는 그룹지은 값/집계값 만 가능
  • 조인
SELECT *
FROM Table1, Table2
--행 갯수: Table1 행 수 * Table2 행 수
  • 집합 연산
    : 차집합(EXCEPT), 합집합(UNION), 교집합(INTERSECT)
  1. 데이터 정의어
CREATE TABLE 테이블명(속성 타입, ...)

ALTER TABLE 테이블명 ADD/DROP/ALTER COLUMN명 타입

DROP TABLE/COLUMN 이름
  1. 데이터 조작어
INSERT INTO 테이블(속성,...)
VALUES (,...)

UPDATE 테이블명
SET 속성=, ...
WHERE 조건
-- 조간이 없을경우 전체 변경

DELETE FROM 테이블명 
WHERE 조건
-- 조건 없으면 전체 삭제
  • NULL
    - NULL + 숫자 = NULL
    - NULL은 집계함수에서 제외
    - 적용행 없을 때 SUM, AVG = NULL
    - NULL은 등호비교 X, is 로 구분

객체


  1. : 가상 테이블
CREATE VIEW 뷰이름 AS SELECT ~
  • 질의 재 사용 가능
  • INSERT, UPDATE, DELETE 수행 불가
  1. 인덱스
  • 하나 이상의 속성 이용
  • 클러스터 인덱스
    : 연속된 키값의 레코드를 묶어서 같은 블록에 저장
    : 테이블당 하나, 리프노트에 테이블 열 자체 저장
    ** PK 생성 시 자동 생성
  • 비클래스터 인덱스
    : B-Tree 구조, 리프노트에 페이지번호-행번호 저장
    : 테이블당 여러개 생성 가능
    : 저장공간 많이 필요

** 고려사항
1. WHERE 에 자주 사용되는 열
2. 조인에 자주 사용되는 열
3. 열이 가공되는건 사용 지양
4. 열의 값이 다양하면 유리

CRATE INDEX 이넥스명 ON 테이블명(속성)

ALTER INDEX 인덱스명 ON 테이블명...

0개의 댓글