[DB] DataBase 종류들

mAesTro·2022년 8월 10일
4

DB

목록 보기
1/1
post-thumbnail

Data

DB를 다루기 전에는 제일 기초가 되는 Data를 보아야 한다. AI나 빅데이터,클라우드 개발을 할때는 Data가 있어야 한다.만약에 Data가 없으면 머신러닝도 못하고 사용자들의 정보를 수집하지 못해서 택배가 잘못 배달되거나 실생활에서 당연히 여기던 것들의 체계가 무너질 수가 있다. 없고 이 정보화 시대에는 Data가 무기라고 해도 과언이 아닐 정도로 Data가 정말로 중요하다.
이제 Data에 대해 제대로 알아보자.

Data는 일단 이러한 뜻을 가지고 있다.

"문자, 숫자, 소리, 그림, 영상, 단어 등의 형태로 된 의미 단위이다."

📎reference : wikipedia

그리고 Data에서는 2가지 종류로 나뉠수도 있다.

정형 데이터(structured data)


• 틀이 잡혀 있는 데이터
ex) 온도 데이터,날씨 데이터,교통 체증 데이터....

비정형 데이터(unstructured data)


• 틀이 잡혀 있지 않는 데이터
• 다양하고 방대한 양의 데이터,별도의 분석 기술이 필요하다.
ex) 벡터,이미지,음원,빅데이터....

이렇게 2가지로 나뉠수가 있다.2개의 Data중에서 밑에서 알아볼 SQL은 정형 데이터로 만들어진 데이터 베이스를 조작하는 언어이다.




DataBase(DB)

DB라는 단어는 전공공부를 하다가 친구들과 얘기를 하다가도 많이 들어본 단어이다. 그래서 정확한 단어의 정의를 찾다가 오라클에서 이렇게 정의를 내렸다.

"데이터베이스는 일반적으로 컴퓨터 시스템에 전자적으로 저장되는 구조화된 정보 또는 데이터의 조직화된 모음입니다."

📎reference : Korea Oracle

Oracle : 오라클(Oracle Corporation)은 미국 텍사스에 본사를 둔 매출 규모 세계 2위의 소프트웨어 회사이다.
📎reference : https://ko.wikipedia.org/wiki/%EC%98%A4%EB%9D%BC%ED%81%B4_(%EA%B8%B0%EC%97%85)

이렇게 보면 DB의 뜻은 별거 없었다.그리고 DB들은 정보를 저장하는 공간이다.하지만 여기서 헷갈리는 점이 있었는데 여기서 MySQL이라는 단어를 많이 들었을 것이다. ⚠️주의해야할 점이 MySQl은 DB가 아니다 정확하게는 DBMS이다.

DBMS(Database Management System)

언제 어디서든지 DB에 접근하게 해주는 소프트웨어들이다.
ex) MySQL,NoSQL .....

이렇게 사용자가 DBMS를 통해서 DB에 접근할 수 있다.



DB종류

DB에도 많은 종류들이 있다.파일 시스템,계층형,네트워크 형,관계형,객체 지향들이 있다.
제일 먼저 파일 시스템형을 보면은


파일 시스템형

파일 시스템형은 DB라고 보기에는 애매하다.이 시스템형이 나오고 몇년후에 제대로된 DB라는 개념이 성립되었다.그러다보디 DB에 비해서 많이 부족한 점들이 많다.파일 시스템형모델을 관리 해주는 SW들은 ISAMVSAM들이 있다.파일 시스템형의 구조를 살펴 보면



📎reference : https://m.blog.naver.com/baekkr95/221779013002

이렇게 응용 프로그램 > 운영체제 > 파일 접근하는 방식으로 동작하는 시스템이다.밑에서 리눅스 파일 시스템의 예를 들어가면서 한번 보겠다.




⚠️리눅스 파일 시스템의 구조
📎reference : https://cyber0946.tistory.com/12

이 구조를 보고 당황할 필요 없다.위에 나와 있는 사진이랑 별 다를게 없다.처음에 프로세서 즉 운영체제에서 요청이 들어온다.그런 다음에 커널(운영체제와 메모리를 연결해주는 중요한 부품)이 데이터 스토리지에 데이터들을 저장하는 형식이다.각 자료들이 순차적으로 쌓이는 것이 아니라 메모리 영역에 따라서 저장한다고 하는데 이해가 안되서 넘어 가도록 하겠다.이것이 파일 시스템형의 기초였다.파일시스템의 DBMS ISAM을 보면


ISAM [ Indexed Sequential Access Method ]

ISAM은 데이터들을 차례대로 정렬시켜서 원하는 데이터를 찾는 방식이다.




Record : row(행)을 의미 한다.
📎reference : http://itnovice1.blogspot.com/2019/08/blog-post_28.html

운영체제에서 직접적으로 사용하다 보니까 포인터를 이용해 메모리에 직접 접근하여서 정렬하는 방식이다.그래서 장단점을 나누어 보면

장점
• 삽입 삭제가 용이하다.

단점
• 인덱스의 메모리에 하나하나 직접 접근하다 보니까 처리하는 시간이 느리다.

VSAM [ Virtual Sequential Access Method ]

운영체제와 IBM사에서 만든 방식들이 있는데 아직 내가 다룰 내용이 아닌거 같다.


계층형 (Hierarchical)

계층형 DB는 트리 형태로 계속해서 파생하면서 데이터를 저장하는 구조이다.
제일 위에 부모 노드를 시작으로 자식 노드 또 자식 노드가 부모 노드가 되면서 계속해서 데이터를 저장하는 방식이다.그리고 계층형 DB는 현재의 DB인 관계형 DB의 시초가 되었다.



📎reference : https://www.heavy.ai/technical-glossary/hierarchical-database

📎reference : https://graybox.co/knowledge/blog/storing-hierarchical-data-in-a-database

장점
• 정보들을 쉽게 수정하고 삭제하기 용이하다.

단점
• 계층형 DB로 복잡한 구조 형성이 안된다.왜냐하면은 하위 노드가 여러 상위 노드에
매칭 되는 것은 허용하지 않기 때문이다.

• 밑에서 부터 원하는 데이터를 가져와서 부모 노드들을 거쳐오기 때문에 시간이 오래 걸린다.

• 위에 단점이랑 비슷한 문제인데 데이터를 가져 오는데 중간 중간 부모 노드에 데이터를 저장비효율적인 과정으로 데이터를 저장합니다.


네트워크형 (NetWork)

네트워크형은 그래프는 뿌리 노드(레코드)에서 부모 노드(레코드) 또 자식 노드(레코드)로 되어서 계속해서 내려가는 형태의 DB이다.앞에서 소게 되었던 계층형 DB에서는 1대1로 대응해서 레코드들을 매칭 시켜 가면서 찾느라 많이 느렸다.하지만 네트워크 계층은 1대n꼴로 매칭이 되서 더 효울적이다.그리고 더 많은 자식의 노드들을 연결하면 데이터들의 중복성들이 줄어 들 수 있다.



^ 네트워크형 DB의 구조


관계형 (Relational)

앞에서는 관계형이 나오기 전까지의 모델형 들을 보았다.하지만 앞에서는 요즘는 안쓰이는 모델들이어서 중요하지 않다.하지만 지금 배우는 것들을 실무에서 많이 쓰이고 요즘에 거의 모든 기업들이 이 모델형들을 쓰고 있어서 매우 중요하다.

일단 관계형 DB는 key와 value들의 관계를 나타내는 모델이다.관계형 DB는 구조를 보면 이게 왜 이름이 관계형이고 이해하기가 쉬워진다.


1.표의 이름은 Table이다.
2.가로와 세로가 있는데 각각 row,colums라고 불린다.

3.Field가 적혀져 있는 부분이 있다.그런데 무언가 이상하다.
Fieldcolums이랑 똑같은 부분에 써져 있다. 궁금증이 생겼다. columsField의 차이점이 뭘까라는 궁금증이 었다.2개가 아마 미세하게 차이가 있을 것이다. 왜냐하면 차이점이 없으면 저 2개의 단어를 써가면서 열을 구분을 시킬 필요가 없을것이다.
찾아 보니까

A column is a collection of cells alligned vertically in a table. A field is an element in which one piece of information is stored, such as the received field. Usually a column in a table contains the values of a single field. However, you can show several fields in a column by using a Formula or a Combination field. Fields can also be shown as rows in a card view or as controls on a form. A column is just one way to display the contents of a field.

📎 reference : https://docs.microsoft.com/enus/office/vba/outlook/concepts/forms/difference-between-a-field-and-a-column

저렇게 나와 있었습니다.간단하게 해석하면

column은 테이블 내에서 수직으로 정렬된 데이터들을 저장하는 열입니다.
field는 테이블 내에서 세로로 되어 있는 모든걸 다 통칭하는 말입니다.

4.recordrow는 같은 가로줄을 일컫는 말인데 사소한 차이점이 있으면 record는 가로 열에서 데이터들의 집합.그리고 row는 데이터 가로줄 한줄을 의미합니다.

5.key라는 용어가 나와 있는데 key는 간단하게 각 속성들을 나누는 것이라고 보면됩니다.

여기 표에서 ID,Data of Birt등 각각 나누어서 key에 따라서 데이터들이 들어 가는걸 확인 할 수 있다.

결론적으로는 이 DB가 관계형인 이유는 세로와 가로의 관계를 통해서 데이터를 더 효율적으로 찾기 때문이다.

profile
선린인터넷고등학교 정보보호과

6개의 댓글

comment-user-thumbnail
2022년 8월 16일

오라클이 2위면 1위는 대체 누구죠..."?

2개의 답글
comment-user-thumbnail
2023년 7월 8일

멋져용

1개의 답글