독학/[책 + 인강] SQL

[SQL Server] Do it SQL 입문 1장~2장

최연재 2024. 1. 14. 04:13

교재 : Do it! SQL 입문 (강성욱, 이지스퍼블리싱)

 

 

스프링을 공부하기 전에 관계형 데이터베이스를 공부해야겠다고 생각했습니다. 그래서 Do it! SQL 입문으로 개념을 쌓으려고 합니다.

 

1. 데이터베이스와 SQL의 기초

1.1 데이터베이스의 기본 개념

1) 데이터베이스 (database, DB) 

  • 논리적으로 연관된 데이터를 모아 일정한 형태로 저장해 놓은 것
  • 여러 시스템 또는 사용자가 데이터를 동시에 공유하고 사용하기 위해 통합 저장한 데이터의 집합.

- 필요성 : 데이터 중복을 최소화해서 조직의 목적에 맞게 효율적으로 관리

- 데이터베이스를 정의하는 ISOS

  • I (Integrated Data) : 통합 데이터 (데이터 중복이 최소화된 데이터)
  • S (Stored Data) : 저장 데이터 (컴퓨터가 접근할 수 있는 매체에 저장된 데이터)
  • O (Operational Data) : 운영 데이터 (조직의 고유한 업무를 수행하는데 필요한 데이터)
  • S (Shared Data) : 여러 응용 시스템이 공동으로 소유하고 유지하는 데이터

- 데이터베이스 시스템의 특징인 R1C3

  • R (Real Time Accessibilty) :실시간 접근성 (사용자 질의에 실시간 처리해 응답) 
  • C (Continuous Evolution) : 지속적인 변화 (삽입, 삭제, 수정 작업을 통해 항상 최신 데이터를 동적으로 유지)
  • C (Concurrent Sharing) : 동시 공유 (목적이 다른 여러 사용자가 동시에 같은 데이터를 공유)
  • C (Content Referernce) : 내용에 의한 참조 (데이터베이스에 있는 데이터를 참조할 때 레코드의 주소나 위치가 아닌 사용자가 요구하는 데이터 내용으로 참조)

2) DBMS (Database management system)

  • 데이터베이스를 관리하는 시스템
  • DB ≠ DBMS

 

1.2 데이터베이스 종류

1) 계층형 데이터베이스

- 데이터가 부모와 자식 관계를 이룬다.

- 부모 레코드는 여러 개의 자식 레코드를, 자식 레코드는 하나의 부모 레코드만 가질 수 있다.

- 데이터 중복이 발생하기 쉽고, 이후 프로세스 변경이 어려워 현재는 거의 사용되지 않는다.

 

2) 네트워크형 데이터베이스

- 데이터를 노드로 표현한 모델

- 노드는 네트워크 상에 있으며 서로 동등하다.

- 계층형 데이터베이스의 단점인 데이터 중복 문제, 상하 종속 관계를 해결했다.

- 멤버 노드는 여러 주인 노드를 가지는데, 멤버 노드는 반드시 주인 노드와 연결되어야 한다.

- 멤버 노드는 주인 노드에 있는 레코드와 연곤되어야 한다.

- 종속성 문제가 있어 데이터베이스 구조를 바꾸기 어렵다.

 

3) 키-값 데이터베이스

- NoSQL(비관계형 데이터베이스)의 한 종류로 키-값을 일대일 대응해 데이터를 저장한다.

- 데이터 중복이 발생하며 비정형 데이터 저장에 유리하다.

- 관계형 데이터베이스와 함께 가장 많이 사용된다.

- 스키마 없이 작동한다.

  • 스키마 : 데이터베이스의 구조와 제약 조건에 대해 전반적인 명세를 기술한 것
  • 데이터 구조를 미리 정의할 필요가 없고 언제든지 바꿀 수 있다.

 

4) 관계형 데이터베이스

- 데이터를 테이블 형태로 저장한다.

- 열과 행으로 구성된 테이블로 데이터를 저장하며 고유키가 각 행을 식별한다.

- 데이터는 행 단위로 저장되며 각 항목의 속성은 열이라고 표현한다.

- 열 : 고유한 이름을 가지며 자신만의 타입을 가진다. 필드 또는 애트리뷰트라고도 한다.

- 행 : 곤계된 데이터의 묶음, 튜플 또는 레코드라고도 한다.

* ERD (Entity relationship diagram)

  • 논리 모델 : 데이터 모델의 첫 단계로 고객의 요구사항을 수집, 분석해 데이터베이스의 전체 모양을 구성하는 것
  • 물리 모델 : 논리 모델을 바탕으로 실제 데이터를 저장할 수 있는 모델

- RDBMS 종류

RDBMS 상용 유무
SQL Server 상용
Oracle 상용
DB2 상용
PostgreSQL 오픈 소스
MySQL 오픈 소스
SQLite 오픈 소스

 

1.3 SQL이란 무엇인가?

- SQL : 관계형데이터베이스 관리 시스템의 데이터를 관리하는 프로그래밍 언어

- DBMS 종류에 따른 SQL 종류

  • SQL Server : T-SQL
  • Oracle : PL/SQL
  • MySQL : SQL
  • 국제 표준 : ANSI SQL

- SQL 문법 종류

 

(1) 데이터 정의 언어 (Data define language ; DDL)

  • 데이터베이스를 정의하는 언어
  • 테이블 스키마를 관리한다.
  • 데이터 정의 언어 항목
    • CREATE : 데이터베이스또는 테이블을 생성한다.
    • ALTER : 테이블을수정한다.
    • DROP : 데이터베이스 또는 테이블을 삭제한다.
    • TRUNCATE : 테이블을 초기화한다.

(2) 데이터 조작 언어 (Data manipulation language ; DML)

  • 데이터베이스에 입력된 데이터를 검색, 입력, 수정, 삭제한다.
  • 데이터 조작 언어 항목
    • SELECT : 데이터를 검색한다.
    • INSERT : 데이터를 입력한다.
    • UPDATE : 데이터를 수정한다.
    • DELETE : 데이터를 삭제한다.

(3) 데이터 제어 언어 ( data control language ; DCL)

  • 데이터베이스에 접근하거나 객체에 권한을 부여하는 등의 역할을 한다.
  • 데이터 제어 언어 항목
    • GRANT : 특정 데이터베이스 사용자에게 작업의 특정 수행 권한을 부여한다.
    • REVOKE : 특정 데이터베이스 사용자에게 작업의 특정 수행 권한을 삭제한다.
    • COMMIT :  트랜잭션 작업을 완료한다.
    • ROLLBACK : 트랜잭션 작업을 취소하거나 이전 상태로 복구한다.

 

1.4 SQL을 배워야 하는 이유

- 대부분의 데이터는 SQL을 사용할 수 있는 RDBMS에 저장된다.

- RDBMS에 저장된 데이터를 추출하려면 SQL 문법을 사용해 컴퓨터에게 명령을 내려야 한다.

- RDBMS가 아닌 시스템에도 SQL과 비슷한 문법을 사용해 데이터를 추출할 수 있다.

 

 

 

2. 나만의 실습 환경 만들기