본문 바로가기

IT Language/SQL

[SQL] 데이터베이스의 정의와 특징

-데이터베이스

  • 여러 사용자나 응용 프로그램이 공유하고 동시에 접근 가능한 ’ 데이터의 집합’
  • 데이터의 저장 공간 자체를 의미하기도함.

-DBMS (Data Base Management System)

  • 데이터베이스를 관리, 운영하는 소프트웨어
  • 사용자나 응용 프로그램은 DBMS가 관리하는 데이터에 동시에 접속하여 데이터를 공유한다
  • 대용량의 데이터 집합을 체계적으로 구성해 놓은 것이다.
  • DBMS의 유형은 크게 계층형/망형/관계형/객체지향형/객체 관계형 등으로 분리된다.
  • SQL은 관계형 데이터 베이스에서 사용되는 언어이다.
  • Oracle은 Oracle사에서 제작한 DBMS 소프트웨어이다.

-데이터베이스의 특징

  • 데이터의 무결성: 데이터베이스 안에 데이터는 어떤 경로를 통해 들어왔든 오류가 있어서는 안 됨
  • 데이터의 독립성: 데이터베이스와 응용 프로그램은 서로 의존적인 관계가 아니라 독립적인 관계이다.
  • 보안: 데이터베이스 안에 데이터는 데이터를 소유한 사람이나 데이터에 접근이 허가된 사람만 접근할 수 있다.
  • 데이터 중복 최소화: 데이터베이스에서는 동일한 데이터가 여러 군데 중복 저장되는 것을 방지한다.(PK/FK)
  • 응용프로그램 제작 및 수정 용이: 데이터베이스를 이용하면 통일된 방식으로 응용 프로그램을 작성할 수 있고 유지, 보수 또한 쉬움
  • 데이터의 안전성 향상: 데이터가 손상되는 문제가 발생하더라도 원래의 상태로 복원 또는 복구할 수 있음

-DBMS의 분류

-계층형 DBMS

  • 각 계층이 트리 형태를 띠고 1:N의 관계를 가짐
  • 한번 구축하면 구조 변경이 까다로움
  • 접근의 유연성이 부족하여 임의 검색 시 어려움 (문제점)

-망형 DBMS

  • 1:1 1:N N:M(다대다) 관계가 지원되어 효과적이고 빠른 데이터 추출이 가능
  • 매우 복잡한 내부 포인터 (주소를 가지는 개념) 사용
  • 프로그래머가 모든 구조를 이해해야 만 프로그램을 작성할 수 있음 (문제점)

-관계형 (R /Relationship) DBMS (요즘 제일 많이 쓰는 구조)

  • 모든 데이터는 테이블에 저장
  • 테이블 간의 관계는 기본키(Primary Key)와 외래 키(Foreign Key)를 사용하여 맺음 (부모-자식 관계)
  • 부모 자식 테이블을 조합하여 결과를 얻고자 할 경우에는 JOIN기능 이용
  • 다른 DBMS에 비해 업무 변화에 따라 바로 순응할 수 있고 유지, 보수 측면에서도 편리
  • 대용량 데이터를 체계적으로 관리할 수 있음
  • 데이터의 무결성도 잘 보장됨
  • 시스템 자원을 많이 차지하여 시스템이 전반적으로 느려지는 단점이 있음
  • 열 이름(column name) 행(row) 열(column)

-SQL의 개요 (에스큐엘/시퀄)

  • 구조화된 질의어
  • 데이터베이스를 조작하는 언어

-SQL의 특징

  • DBMS 제작 회사와 독립적임
  • 다른 시스템으로 이식성이 좋음
  • 표준이 계속 발전함
  • 대화식 언어임
  • 클라이언트/서버 구조 지원함

-표준 SQL과 각 회사의 SQL

  • 많은 회사가 표준 SQL을 준수하려고 노력하지만 각 회사의 DBMS마다 특징이 있기 때문에 완전히 통일되기는 어렵다.
  • 각 회사의 제품은 모두 표준 SQL을 공통으로 사용하면서 자기 제품의 특성에 맞춘 호환되지 않는 SQL문 사용

'IT Language > SQL' 카테고리의 다른 글

[DataBase] 데이터 베이스 모델링  (0) 2023.04.05