데이터베이스

Nam Eun-Ji·2020년 11월 28일
0

데이터베이스란?

  • 여러 사람이 공유하여 사용할 목적으로 통합하여 관리되는 데이터의 집합
  • 자료 항목의 중복을 없애고 자료를 구조화하여 저장함으로써 자료 검색과 갱신의 효율을 높임
  • 데이터베이스는 보통 데이터베이스 관리 시스템(DBMS)에 의해 제어됨.


데이터베이스의 목적

  • 데이터베이스의 정보를 웹사이트에 접속했을 때 누구나 볼 수 있게 제공 가능
  • 데이터베이스를 직접 제어하지 않아도 사용자들이 입력할 수 있게끔 할 수 있음


DBMS(DataBase Management System)

  • 데이터베이스를 관리하는 시스템
  • 관계형 데이터베이스(SQL), 객체지향 데이터베이스, NoSQL 데이터베이스, 네트워크형 데이터베이스 등으로 나뉨
  • 데이터베이스 시스템 혹은 더 짧게 데이터베이스라고 통칭되기도 함
  • 주요 기능 : 데이터 추가・삭제・수정・조회 / 데이터 무결성 유지 / 트랜잭션 관리 / 데이터 백업 및 복원 / 데이터 보안 등


SQL이란?

  • 데이터를 쿼리, 조작, 정의하고 액세스 제어를 제공할 목적으로 거의 모든 관계형 데이터베이스에 의해 사용되는 프로그래밍 언어


Relational Database(관계형 데이터베이스, RDBMS)

  • 데이터를 표의 형태로 정리정돈 가능
  • 정렬, 검색 등의 작업을 빠르고 안전하게 가능
  • MySQL, Oracle, SQL Server, PostgreSQL, DB2, Access...
  • 장점
    • 데이터를 효율적, 체계적으로 관리 가능
    • 미리 저장하는 데이터들의 구조를 정의함으로 데이터의 완전성이 보장
    • 트랜잭션
  • 단점
    • 테이블 구조 변화에 유연하지 못함
      확장의 어려움(서버를 늘리는 것만으로 확장하기가 쉽지 않고 서버의 성능 자체도 높여야함, 서버를 늘려 분산저장하는 것도 쉽지 않음)
    • 대량의 데이터 입력 처리
  • 정형화된 데이터, 완전성이 중요한 데이터들을 저장하는데 유리 ex) 전자상거래 정보, 은행 계좌 정보, 거래 정보 등


NoSQL(Not only SQL)

  • SQL만을 사용하지 않는 데이터베이스 관리 시스템으로, 관계형 데이터베이스를 사용하지 않는다는 의미가 아닌 여러 유형의 데이터베이스를 사용하는 것.
  • MongoDB, HBase, Redis, Cassandra ...
  • 장점
    • 대용량데이터
    • 데이터분산처리
    • 빠른 읽기・쓰기 속도
    • 유연한 데이터 모델링
    • Cloud Computing
  • 단점
    • 데이터 일관성이 항상 보장되지 않음
    • 다양하고 복잡한 데이터 쿼리는 불가능
    • 트랜잭션이 안되거나 비교적 불안정
  • 비정형화 데이터, 완전성이 상대적으로 덜 유리한 데이터를 저장하는데 유리 ex) 로그 데이터


MySQL의 구조

명칭설명
tabel (표)데이터를 저장하는 형태
database (데이터베이스 = 스키마 schema)서로 연관되어 있는 데이터를 그룹핑
database server (데이터베이스 서버)데이터베이스를 저장하는 곳
  • 테이블은 컬럼(column)과 로우(row)로 구성
  • 로우는 각 항목들의 실제 값들을 이야기하며 각 로우는 저만의 고유키(Primary Key)가 있어 PK를 통해 해당 로우를 찾음
  • 각각의 테이블은 서로 상호관련성을 가지고 연결될 수 있음
관계설명
One To One (일대일)테이블 A의 로우가 테이블 B의 로우가 정확히 1:1 매칭되는 관계
One To Many (일대다)테이블 A의 로우가 테이블 B의 여러 로우와 연결되는 관계한 고객은 여러 제품을 구매할 수 있으나 구매된 제품의 주인은 오직 한 고객 뿐
Many To Many (다대다)테이블 A의 여러 로우가 테이블 B의 여러 로우와 연결되는 관계책은 여러 작가에 의해 쓰일 수 있고, 작가들은 여러 책을 쓸 수 있음
profile
한 줄 소개가 자연스러워지는 그날까지

0개의 댓글