jiiheee's 개발 일지

테이블과 SQL 본문

📚 Study/Database

테이블과 SQL

◼️ 2023. 10. 25. 21:20

테이블:  특정한 형태의 데이터로 이루어진 구조화된 목록

데이터베이스를 만들기 위해서는 각각의 데이터들을 관련 있는 주제로 묶어서 보관하는 것이 효율 적이다. 예를 들어 파일 캐비닛에 정보를 저장한다고 가정해 보자. 캐비닛에 있는 많은 정보들을 랜덤 하게 묶어서 보관하지 않고 주제를 정하고 관련 있는 파일끼리 묶어서 보관한다면 더 효율 적으로 활용할 수 있을 것이다. 이것을 데이터베이스에서는 테이블이라고 부른다. 테이블은 특정한 형태의 데이터를 저장할 수 있는 구조화된 파일이다. 


여기서 중요한 건 테이블은 한 가지 종류이거나 목록이라는 것이다.


테이블은 데이터를 어떤 형태로 저장할지 정의하는 여러 데이터 구조와 속성으로 이루어져 있다. 이 구조와 속성에는 어떤 데이터를, 어떻게 쪼개 저장하고, 조각의 이름은 무엇인지 등의 정보가 포함된다. 이런 정보 집합을 스키마라고 한다.

 

스키마:  데이터베이스를 구성하는 데이터 개체(entity), 속성(attribute), 관계(relationship) 및 데이터 조작 시 데이터 값들이 갖는 제약 조건 등에 관해 전반적으로 정의

즉, 사용자(=뷰어)들이 찾고자 하는 데이터를 검색하였을 때 가장 아래에 저장되어 있는 데이터베이스까지 닿아 정보를 얻기까지의 구조를 뜻한다. 다른 이름으로는 메타데이터라고 한다.

 

스키마의 3계층

     1. 외부 스키마

        - 사용자가 보는 관점으로 여러 개 존재

     2. 개념 스키마

        - 논리적 구조

      3. 내부 스키마

        - 실제 데이터베이스가 저장되어 있는 관점에서 데이터베이스를 정의한 것

테이블은 열과 행으로 이루어져 있다. 열은 column 행은 row라고 한다. Row는 레코드라고도 한다. 각각의 column은 datatype을 가지고 있으며 이는 데이터 유형을 정의한다. 

 

예를 들어 아래와 같은 테이블이 있다고 가정해 보자

번호 이름 성별 나이
1 스폰지밥 21
2 다람이 24

그럼 번호, 이름, 성별, 나이가 각각의 column이 된다. 번호는 숫자, 이름은 문자, 성별은 문자, 나이는 숫자이라는 각 column에 해당하는 datatype을 정의할 수 있다. 번호와 나이도 문자열이 될 수는 있지만 통상 수치형 데이터를 사용하기 때문에 숫자라고 표기하였다. 

 

이러한 테이블을 만들기 위해서는 기본 키를 가져야 한다. 기본 키란 테이블에 있는 모든 행이 각 다른 행들과 구분 지을 수 있도록 만든 것을 기본 키라고 부른다. 위에 사용된 테이블을 예시로 번호라는 column이 없다고 가정해보자. 그러면 이름, 성별, 나이로 고객들을 구분해야하는데 많은 데이터를 저장하다보면 동명이인에 성별도 나이도 같은 경우가 있을 수 있기 때문에 각 행을 구분지을 수 있는 고유 번호가 필요하다. 이 고유 번호를 기본 키라고 부르며 위 테이블에서는 번호라고 볼 수 있다.

 

기본 키는 몇 가지 조건을 가져야 한다.

1. 행을 구분해야 하기 때문에 두 행이 같은 기본 키를 가질 수 없다. 스펀지밥과 다람이는 각각 다른 번호를 가져야 한다.

2. 모든 행은 기본 키 값을 가져야 한다. 기본 키 열이 NULL 값을 허용하지 않는다.

3. 기본 키 값은 변경 및 업데이트될 수 없다. 다람이를 삭제 후 징징이를 추가하게 되면 징징이는 2번이 아닌 3번을 사용한다.

 


 

 

SQL(Structured Query Language):  데이터베이스와 소통하기 위해 고안된 언어

 SQL은 프로그래밍 언어인 Java, C, Python과 다르게 아주 적은 수의 단어로 매우 간단하면서 효율적인 방법으로 데이터베이스의 데이터를 읽거나 쓸 수 있다.

 

SQL의 장점

1. 프로그래밍 언어와 달리 SQL을 익히면 거의 모든 데이터베이스를 사용할 수 있다. 대부분의 대형 DBMS가 SQL을 지원하기 때문

2. 배우기가 매우 쉽다.

3. 명령어를 적절하게 조합하면 정교한 데이터베이스 작업도 수행할 수 있다.


 

 

데이터베이스에서 필수 요소인 테이블에 대한 개념을 공부하였다. 그동안 단순하게 데이터를 효율적으로 저장하기 위한 것이라고 생각했는데, 스키마에 대한 개념도 새롭게 배울 수 있었다. 사실 스키마는 이해가 잘 안 돼서 여러 번 읽고 강의도 들으면서 겨우 이해했다... 정보통신용어사전에 표기된 설명과 이미지가 이해하는데 많은 도움이 되었다. 배우면 배울수록 참 재밌는 공부다.

 

위 게시글은 「그림으로 배우는 데이터베이스」 및 「SQL in 10 Minutes」 도서를 기반으로 작성하였으며 개인 학습용으로 작성되었습니다.

 

 

**출처:**

 

<도서>

[그림으로 배우는 데이터베이스] (저: [사카가미 코오다이], 역: 양성건 출판사: [영진닷컴])

[SQL in 10 Minutes] (저: [벤 포터], 역:박남혜 출판사: [프로그래밍 인사이트])

 

<그림>

[http://terms.tta.or.kr/dictionary/dictionaryView.do?subject=%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4+%EC%8A%A4%ED%82%A4%EB%A7%88]