[SQL] 1장. SQL 이해하기

김상현·2022년 9월 17일
0

SQL

목록 보기
1/22
post-thumbnail

[손에 잡히는 10분 SQL - 벤 포터 지음, 박남혜 옮김] 책의 학습 후 정리자료입니다.


📍 데이터베이스 기본

📌 데이터베이스

  • 정리된 방식으로 데이터를 저장하는 공간
  • 가장 단순하게 생각하는 방법은 데이터베이스를 파일 캐비닛으로 상상하는 것이다.
  • 파일 캐비닛은 어떤 데이터가 어떻게 정리되었는지 관계없이 단순히 데이터를 저장하기 위한 물리적인 공간으로 볼 수 있다.

❗️ 혼동을 야기하는 잘못된 사용

  • 사람들이 데이터베이스 소프트웨어데이터베이스를 혼동하는 경우가 있다.
  • 데이터베이스 소프트웨어데이터베이스 관리 시스템(DBMS : DataBase Management System) 이다.
  • 데이터베이스 는 DMBS를 생성하고 조작하는 물리적인 저장공간을 말한다.
  • 데이터베이스 관리 시스템, 즉 DMBS와의 대화에 필요한 것이 바로 SQL 이다.
  • 현재 사용되는 대표적인 DBMS로는 Oracle, Db2, SQL Server, PostgreSQL, MySQL, SQLite 등이 있다.

📌 테이블

  • 파일 캐비닛에 데이터를 저장할 때, 캐비닛 안에 파일을 만든 후 그 파일과 서로 관련 있는 데이터를 보관할 것이다.
  • 테이블특정한 형태의 데이터를 저장할 수 있는 구조화된 파일이다. 테이블에는 고객 목록, 제품 목록처럼 특정한 형태의 정보 목록을 저장할 수 있다.
  • 테이블에 저장하는 데이터는 한 가지 종류 혹은 목록이다.
    • 고객 목록과 주문 목록을 데이터베이스에 저장해야 한다면, 이 둘을 같은 테이블에 저장하지 않을 것이다.
    • 동일한 테이블에 고객 목록과 주문 목록을 저장하면 후속 검색과 접근이 힘들어진다.
    • 따라서 테이블을 각각 하나씩 만드는 것이 낫다.
  • 데이터베이스의 모든 테이블은 다른 테이블과 구별되는 고유한 이름을 가진다.
  • 즉, 데이테베이스에는 같은 이름의 테이블이 존재할 수 없다.
  • 테이블은 데이터를 어떤 형태로 저장할지 정의하는 여러 데이터 구조와 속성으로 이루어져 있다.
  • 이런 정보 집합을 스키마 라고 하는데, 스키마는 특정 테이블뿐 아니라 전체 데이터베이스를 표현하는데도 사용된다.
  • 또한, 테이블 간의 관계를 표현하는 데도 사용한다.

📌 열

  • 열(Column) 은 테이블에 있는 하나의 필드로 모든 테이블은 한 개 이상의 열로 구성되어 있다.
  • 열을 이해하는 가장 좋은 방법은 데이터베이스 테이블을 엑셀과 같은 스프레드시트로 상상하는 것이다.
  • 학생 테이블의 한 열에는 국어 점수, 다른 열에는 수학 점수, 다른 열에는 영어 점수, 또 다른 열에는 화학 점수를 저장할 수 있다.

📒 데이터 나누기

  • 여러 개의 열에 데이터를 올바르게 나누어 넣는 것은 매우 중요한 작업이다. 예를 들어 시, 구, 동, 우편번호는 일반적으로 다른 열에 저장해야 하는데, 데이터를 나눠 저장하면 특정 열로 정렬하거나 추출할 수 있다. 데이터를 나누는 것은 데이터베이스를 설계하는 시점에서 서비스의 요구 사항에 따라 달라질 수 있다.

📌 데이터형

  • 데이터베이스에 있는 각각의 열은 데이터형(Datatype) 을 가지고 있다.
  • 데이터형은 열에 저장할 수 있는 데이터의 유형을 정의한다.
  • 데이터형에 따라 특정데이터를 제한하거나 허용할 수 있다.
  • 데이터형은 데이터를 바르게 정렬할 수 있도록 해주고, 디스크 사용량을 최적화하는데 중요한 역할을 한다.

❗️ 데이터 호환성

  • 데이터형과 데이터형의 이름은 서로 다른 SQL 소프트웨어가 호환되지 않게 하는 주요 원인 가운데 하나다.
  • 기본 데이터형은 대부분의 SQL에서 지원하는데 반해, 고급 데이터형은 그렇지 않다.
  • 심지어 DBMS마다 같은 데이터형을 다르게 부르는 경우도 있다.
  • 따라서 테이블 스키마를 생성할 때 데이터 호환성을 항상 고려해야 한다.

📌 행

  • 테이블에 있는 데이터는 행(Row) 에 담긴다.
  • 저장되는 각 레코드는 각각의 행에 담기게 된다.
  • 학생 테이블의 한 행에는 한명의 학생 정보를 저장한다.
  • 테이블의 행이 개수는 그 안에 들어 있는 레코드의 수이다.

📌 기본키

  • 테이블에 있는 모든 레코드는 각 레코드를 다른 레코드와 특별히 구별 짓게 하는 열을 가져야 한다.
  • 도서목록 테이블의 각 레코드는 ISBN(International Standard Book Number)를 기본키로 사용할 수 있다.
  • 테이블의 각 레코드를 구별해주는 열기본 키(Primary Key) 라고 부른다.
  • 기본 키는 특정 레코드를 참조하기 위해 사용된다.
  • 기본 키 없이 테이블에 있는 특정 레코드를 업데이트하거나 삭제하는 것은 매우 힘들다.
  • 변경 대상인 레코드만 업데이트하거나 삭제할 수 있는 안전하고 보장된 방법이 없기 때문이다.
  • 기본 키로 정의되기 위해 필요한 조건
    • 두 레코드가 같은 기본 키 값을 가질 수 없다.
    • 모든 레코드는 기본 키 값을 가져야 한다. 즉, 기본 키 열은 NULL 값을 허용하지 않는다.
    • 기본 키 열에 있는 값은 변경하거나 업데이트할 수 없다.
    • 기본 키 값은 재사용될 수 없다.
  • 기본키는 보통 테이블 안에 있는 한 개의 열로 정의하지만, 반드시 하나의 열로만 정의할 필요는 없다.
  • 여러개의 열을 함께 조립하여 기본 키(복합 기본 키)로 정의할 수 있다.
  • 다수의 열을 사용하면 위에 있는 규칙은 기본 키가 포함된 모든 열에 적용되어야 한다.
  • 기본 키로 정해진 모든 열을 조합한 값은 고유해야 한다.

📒 항상 기본키를 정의하라.

  • 실제로 기본 키가 요구되지 않는 테이블이라도, 데이터베이스 설계자는 생성한 모든 테이블에서 기본 키를 만들어 미래에 데이터를 조작하고 관리할 수 있도록 해야 한다.

📍 SQL이란 무엇인가?

  • SQL(Structed Query Language) 은 데이터베이스와 소통하기 위해 고안된 언어로, 음성 언어인 영어나 프로그래밍 언어인 Java, C, Python과는 달리 의도적으로 아주 적은 수의 단어로만 구성되어 있다.
  • 매우 간단하면서도 효율적인 방법으로 데이터베이스에서 데이터를 읽거나 쓸 수 있다.
  • SQL의 장점
    • SQL은 특정 데이터베이스 회사가 독점하는 언어가 아니다. 대부분의 대형 DBMS가 SQL을 지원하기 때문에 이 언어를 익히면, 거의 모든 데이터베이스를 사용할 수 있다.
    • SQL은 배우기 쉽다. SQL 명령문은 서술식의 영어 단어로 구성되어 있고, 쓰이는 단어도 많지 않다.
    • SQL은 단순하면서 매우 강력한 언어이다. 명령어를 적절하게 조합하여 솜씨있게 사용하면 복잡하면서도 정교한 데이터베이스 작업르 수행할 수 있다.
profile
목적 있는 글쓰기

0개의 댓글