본문 바로가기
SQL

SQL_데이터베이스와 SQL

by 유서담 2023. 12. 5.

데이터베이스

 

  • 데이터베이스는 여러 사람들이 공유하고 사용할 목적으로 통합관리되는 정보의 집합
  • 데이터베이스는 관련성 있는 데이터의 모음
  • 은행, 예약, 검색, 쇼핑 등 일상 속에서 이용하고 있는 많은 온라인 서비스들에서 DB를 활용
  • 데이터베이스는 반드시 데이터베이스 관리 시스템(DataBase Management System, DBMS)과 함께 한다

 

데이터베이스의 특징

 

  • 실시간 접근을 지원한다
  • 다수의 사용자 혹은 프로그램이 동시에 데이터를 이용할 수 있다
  • 데이터에 대한 접근이 용이하다
  • 레코드의 주소나 위치가 아닌 내용으로 데이터를 탐색할 수 있다
  • 항상 최신의 데이터를 유지한다

 

데이터베이스 관리 시스템

 

  • 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합
  • 대표적인 DBMS는 오라클, MySQL, MS SQL Server, DB2, Maria DB, H2, HSQLDB 등이 있다
  • DBMS는 사용자 또는 다픈 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다
  • DBMS를 통해 DB를 사용
  • 관계형 데이터베이스(Relational DataBase)를 관리해주는 RDBMS가 가장 많이 사용된다

 

 

데이터베이스 관리 시스템 장점

 

  • 자료의 통합성을 향상시킨다
  • 데이터의 접근성이 쉬워진다
  • 데이터의 통제가 강화된다
  • 보안이 강화된다

 

사용자 관점에서의 데이터베이스

 

  • DB는 관련있는 데이터를 모아놓은 것
  • 데이터가 많은 경우에 효율적으로 관리하거나 접근관리 등 여러가지 추가적인 기능들을 지원
  • 데이터베이스에서 원하는 데이터를 가져올 때는 직접 데이터베이스에 요청하지 않고, DBMS를 통해서 질의하게 된다
  • DBMS에 질의하기 위해서는 SQL이라는 언어를 사용한다
  • DBMS는 입력된 SQL을 처리하고 필요하다면 DB에 접근하여 작업을 수행한다
  • 데이터베이스는 구조화된 데이터를 저장한다
  • 현실 세계의 데이터를 데이터베이스에 저장하기 위해서는 모델링 작업이 필요하다
  • 관계형 데이터베이스에서는 '객체-관계 모델링(Entity-Relationship Modeling, ERD)' 방법으로 데이터를 모델링한다

 

관계형 데이터 모델

 

  • 관계형 모델에서는 이론적으로 데이터베이스를 관계(Relation)의 집합으로, 관계를 행(Tuple)의 집합으로, 행을 속성(Attribute)의 집합으로 본다
  • 관계형 데이터베이스에서는 관계가 테이블(Table), 행이 레코드(Record), 속성이 컬럼(Column)으로 대치된다
  • 관계라는 이름으로 불리는 이유는 속성과 행이 어떤 관계에 의해 모여진 집합으로 보기 때문
  • 관계형 데이터 모델에서 속성은 해당 속성이 가질 수 있는 모든 값에 대한 도메인을 가지며, 원자적이어야 한다
  • 관계형 데이터베이스에는 관계의 집합과 제약 조건의 집합으로 이루어져 있다

 

 

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

 

  • 관계형 데이터베이스는 테이블(Table)로 구성된다
  • 테이블은 행(Row)과 열(Row)로 구성된다
  • 데이터베이스를 구성하는 테이블이 다른 테이블과 관계를 맺고 모여있는 집합체다

 

관계형 데이터베이스의 특징

 

  • 데이터의 분류, 정렬, 탐색속도가 빠르다
  • 신뢰성이 높고, 데이터 무결성을 보장해준다

 

 

관계형 데이터베이스의 주요용어

이름 설명
열(Column) 각각의 열은 고유한 이름, 자신만의 데이터 타입을 가진다
행(Row) 행은 관련된 데이터 묶음
한 테이블에서 모든 행은 같은 수의 컬럼을 가진다
테이블에서 데이터의 추가, 삭제, 변경, 조회 작업은 행 단위로 이루어진다
키(Key) 테이블의 행의 식별자(행을 대표하는 값)로 이용되는 컬럼을 기본 키(Primary Key) 라고 한다
관계 관계형 데이터베이스에서 테이블간의 관계를 말하고, 관계를 맺고있는 데이터의 수에 따라 나눈다
관계형 데이터에서는 테이블간의 관계를 표현하기 위해서 외래키(Forein Key) 사용


일대일관계 (one - to - one)
일대다관계 (one - to - many) [ 일반적으로 일대다관계를 사용]
다대다관계 (many - to - many)
스키마(Schema) 테이블에 대한 청사진
테이블의 각 열에 대한 이름/데이터타입과 기본키/외래키를 나타낸다
스키마는 객체-관계 다이어그램(ERD : Entity-Relationship Diagram)이나 문자열로 나타낸다

 

 

SQL

 

  • Structured Query Language
  • 구조화된 질의언어
  • 데이터베이스와 관련된 명령을 작성할 때 사용하는 언어

 

SQL의 종류

 

DDL(Data Definition Language)

 

  • 데이터 정의 언어
  • 데이터베이스의 구조를 정의하는 명령어
  • 데이터베이스의 주요 객체를 생성, 삭제, 변경하는 작업 수행한다
    • (주요 객체 : 테이블, 뷰, 인덱스, 시퀀스, 동의어, 트리거, 사용자 ... )

 

DDL 주요 명령어

명령어 설명
CREATE 새로운 데이터베이스 객체 생성
DROP 기존 데이터베이스 객체 삭제
ALTER 기존 데이터베이스 객체 변경
TRUNCATE 데이터를 되돌릴 수 없도록 제거

 

 

DML(Data Manipulation Language)

 

  • 데이터 조작 언어
  • 데이터베이스에서 데이터를 추가, 조회, 변경, 삭제하는 작업을 수행한다

 

DML 주요 명령어

명령어 설명
INSERT 테이블에 새로운 데이터 행을 추가한다
SELECT 테이블에서 데이터를 조회한다
UPDATE 테이블의 데이터를 변경한다
DELETE 테이블에 저장된 특정 데이터 행을 삭제한다 

 

 

DCL(Data Control Language)

 

  • 데이터 제어 언어
  • 권한제어, 트랜잭션 제어 작업을 수행한다

 

DCL 주요 명령어

명령어 설명
GRANT 특정 사용자에게 특정 작업을 수행을 권한을 부여
REVOKE 사용자에게 부여된 권한을 박탈
COMMIT 트랜잭션을 실행
ROLLBACK 트랜잭션을 취소
SAVEPOINT 롤백지점을 설정한다

 

 

 

SQL의 장점

 

  • 배우기 쉽다 ( 사람의 언어와 유사하다 )
  • 효율적이다
  • 기능적으로 완벽하다 ( SQL을 사용해서 테이블의 데이터를 정의, 검색, 조작이 가능하다 )
    • 1970년에 E.F.Codd박사 데이터베이스 시스템을 위한 관계형 모델을 제안하는 논문발표

 

'SQL' 카테고리의 다른 글

SQL_오라클 내장함수(변환함수, 기타함수)  (0) 2023.12.12
SQL_오라클 내장함수 (문자함수, 숫자함수, 날짜함수)  (1) 2023.12.11
SQL_오라클의 데이터타입  (2) 2023.12.07
SQL_테이블, DML  (2) 2023.12.06
Oracle 설치  (0) 2023.09.14