DataBase

min seung moon·2021년 7월 17일
0

SQL SERVER DB

목록 보기
2/5

1. DataBase

소문난 명강의 : 김상형의 SQL 정복

-1. 데이터베이스의 요건

  • 데이터베이스는 의 집합 또는 자료를 관리하는 기술
  • 컴퓨터의 기억 능력을 활용하여 자료를 가공 및 저장, 활용하는 일
    체의 기술
  • 데이터data는 자료를 의미하는 datum의 복수형이며 베이스base는 집합을 의미
  • 자료는 단순 재료이며 자료를 활용하여 합산, 집계 등의 알고리즘을 적용하여 정보로 가공 한다

_1. 대용량

  • 대규모의 데이터를 무리 없이 저장할 수 있어야 한다

_2. 효율성

  • 대용량의 데이터를 유지하려면 고성능 서버와 막대한 비용이 든다
  • 최대한 활용을 하기위해서는 저장 구조를 정교하게 설계하여 불필요한 중복을 제거하고 치밀하게 관리해야 한다

_3. 무결성

  • 데이터를 오류 없이 관리하려면 이중, 삼중의 안정장치가 필요

_4. 활용성

  • 정보를 저장하는 목적은 필요할 때 사용하기 위함이다

_5. 공유성

  • 정보는 공유할 때 가치가 높아진다

_6. 보안성

  • 인증받지 않은 외부의 침입자로부터 데이터를 철저히 보호해야 한다

02. DBMS(DataBase Management System)

  • 데이터베이스 관리 시스템
  • 사람과 하드웨어의 중간에서 요청을 번역하여 데이터의 입출력을 관리
  • DBMS는 데이터 관리만을 전담하는 소프트웨어 레이어
  • 모든 응용 프로그램이
    DBMS와만 통신하면 데이터를 다루는 방법이 획일화되어 재사용성이 확보되고 이기종끼리
    데이터를 교환할 수 있다

03. 데이터 베이스의 역사

-1. 전통적인 방법

  • 종이에 적어 놓는 것
  • 장부나 가계부, 주소록이 데이터 베이스의 원형이다
  • 기동성이 좋아 소규모에는 꽤 효율적이다
  • 검색이나 수정이 어렵고 활용성이 떨어진다

-2. 파일 시스템

  • 컴퓨터가 발명된 이후 파일에 정보를 기록
  • 메모장에 텍스트 형태로 기록하거나 엑셀을 사용
  • 저장량이 방대하고 수정 및 검색도 용이하며 엑셀은 계산 기능까지 갖추고 있다
  • 형식성이 떨어져 신뢰성이 낮다

-3. ISAM

  • SAM(Sequential Access Method)
    • 정보를 파일에 순서대로 쟁여 놓는 방법이며 순차 검색만 가능
    • 100만 건 중에 하나를 찾으려면 100만 번 비교하는 단순 무식한 방법
  • ISAM(Indexed SAM)
    • 순서를 기억하는 인덱스가 있어 이분 검색이 가능
    • 영한 사전에서 단어를 찾을 때처럼 중간 중간을 쿡
      쿡 찔러 보는 알고리즘을 활용하여 수백만 건의 정보도 순식간에 찾을 정도로 성능이 뛰어나다.

-4. 계층형, 네트워크 형

  • 계층형

    • ISAM의 입체적인 느낌
    • 트리 형태로 저장하는 계층형 데이터베이스
    • 폴더나 조직 구성도 처럼 포함 관계의 데이터를 표현하기 쉽고 트리 구조의 특성상 몇 단계만 거치면 최종 값을 신속하게 찾을 수 있다
  • 네트워크형

    • 계층형에서 더 발전하여 정보끼리 망을 이루는 구조
    • 지리 정보나 사회 관계망 같은 복잡한 데이터에 적합

-5. 관계형(Relational Database)

  • 모든 데이터를 표 형태의 테이블에 저장
  • 테이블은 직관적이며 관련 정보를 구하기 쉽고 제약 조건으로 무결성을 보장
  • 여러 개의 테이블을 만들고 관계를 정의하면 복잡한 정보를 간결하게 저장
  • 성능보다 유연성에 중점을 두어 비즈니스 로직의 변화에 신속히 대처할 수 있다

-6. 객체지향형(OODB)

  • 모든 것을 객체로 저장하여 멀티미디어나 비정형 데이터도 효율적으로 다룰 수 있다
  • 순수한 OODB보다는 관계형을 기본으로 사용자 정의형, 중첩 테이블, 타입 상속 등 객체형의 장점을 취한 객체 관계형ORDB이 시도되고 있다

-7. 빅데이터

  • 값싼 컴퓨터를 수평적으로 확장하여 데이터를 분산 저장하는 Hadoop 솔루션, 비정형 데이터
    를 다루는 NoSQL Not Only SQL 문법, 데이터마이닝이나 인공지능, 딥러닝을 활용한 분석 등이 빅 데이터를 구성하는 주요 기술이다

04. DB 종류

-1. Oracle

  • 가장 먼저 상업용으로 발표된 관계형 데이터베이스이며 오랜 역사만큼이나 기능적 완성도가
    높고 시장 점유율도 높다
  • 대용량 처리와 안정성은 물론이고 광범위한 운영체제를 지원하며 이식성, 효율성 등 모든 측면에서 탁월해 한마디로 지존이다

-2. SQL Server

  • 마이크로소프트가 만든 만큼 윈도우 환경에서 탁월한 성능을 발휘하며 닷넷과의 통합성도 우수하다
  • 그러나 멀티 플랫폼을 지원하지 않는다는 것이 큰 단점이다

-3. MySQL

  • 오픈소스이며 무료여서 누구나 자유롭게 사용할 수 있다
  • 다양한 운영체제를 지원하며 표준 SQL을 준수하여 학습용으로 적합하다
  • 상업용 DBMS에 비해 기능이 떨어지지만 PHP와 궁합이 잘 맞아 웹 게시판 제작 용도로 많이 활용한다

-4. DB2

  • IBM에서 1983년에 발표한 관계형 DBMS이다
  • 대용량 데이터 처리에 우수한 성능을 보이며 유닉스와 IBM 메인프레임은 물론이고 다양한 운영체제를 지원한다

-5. PostgreSQL

  • 오픈소스이며 객체 관계형 DBMS이다
  • 사용자 정의형 객체를 만들 수 있고 테이블간의 상속을 지원한다
  • 대부분의 플랫폼을 지원하며 리눅스 환경에서 많이 사용된다

-6. 그 외

  • MongoDB, HBase 등이 있고 티베로, 알티베이스, 큐브리드 등의 국산 제품도 있다, 액세스나 패러독스, SQLite 같은 파일 기반의 소형 DB도 있다

05. DB 구조

-1. 테이블

  • 정보를 표 형태로 정리해 놓은 것
  • 테이블은 현실 세계에 존재하는 사물의 속성을 저장
  • 엔터티Entity
    • 테이블이 표현하는 대상을 가리키며 세상의 모든 것이 엔터티가 될 수 있다.
  • 레코드Record
    • 테이블에 저장된 엔터티, 테이블의 가로줄(Row, 행, 튜플)에 해당
  • 필드Field
    • 레코드의 세부 속성, 테이블의 세로줄(Column, 열, 어트리뷰트)에 해당

-2. 명칭 규칙

  • 같은 범위 내에서 이름이 중복되어서는 안된다. 한 데이터베이스에 같은 이름의 테이블이 두 개 있다거나 한 테이블에 같은 이름의 필드가 두 개 존재할 수 없다. 중복된 이름이 있으면 애매함이 발생한다

  • 대소문자는 구분하지 않으므로 마음대로 붙여도 된다. 그러나 너무 난잡하게 대소문자를섞어서 쓰면 읽기도 어렵고 입력하기도 번거로우므로 일관성을 지키는 것이 좋다.

  • 길이는 최대 128자까지 가능하다. 너무 짧으면 의미를 설명하기 어렵고 너무 길면 입력하기 불편해 적당한 길이로 작성하는 것이 좋다

  • SQL 예약어는 쓸 수 없다. CREATE, SELECT 등의 명령어는 동작을 지시하는 키워드이므로 오브젝트 이름으로 사용해서는 안된다. 꼭 사용하려면 방법은 있지만 바람직하지 않다

  • 유니코드에 포함된 모든 문자를 다 사용할 수 있다. 한글을 사용할 수 있으며 중간에 공백이 있어도 상관없다. 그러나 득보다 실이 많아 짧은 영문으로 작성하는 것이 무난하다.

  • #이나 @ 같은 기호로 시작하는 명칭은 DBMS가 정의한 특별한 의미를 가진다. DBMS 별로 의미가 달라 언더바(_ )외의 기호는 가급적 쓰지 않는 것이 바람직하다.

  • DB

    • 첫 자만 대문자. Study
  • 키워드

    • 모두 대문자. SELECT, CREATE
  • 테이블

    • t 접두로 시작하며 첫 자는 대문자로 쓴다. tCity, tMember
  • 필드

    • 모두 소문자. 여러 단어일 경우 어근만 대문자. name, orderDate

06. 데이터 타입

  • INT, 정수
  • DECIMAL, 실수
  • CHAR, 고정 길이 문자열
  • VARCHAR, 가변 길이 문자열
  • DATE, 날짜
profile
아직까지는 코린이!

0개의 댓글

관련 채용 정보