DataBase

Jetom·2021년 9월 11일
0

etc(언어 외의 기술)

목록 보기
4/11
post-thumbnail

🤔 프론트에서 다룰 일은 없겠지만(?),, 그래도 백엔드와 원활한 소통을 위해 다룬 데이터베이스! 어떻게 뽑아오는지 궁금도 해서 이참에 정리해보려한다 !


데이터베이스란? 💽

데이터베이스를 알기 전에 데이터가 무엇인지부터 살펴보자! 데이터란 컴퓨터 안에 기록되어 있는 숫자(찐으로 0,1로 모여있는 그것 맞다.)를 의미하며, 이런 데이터의 집합을 데이터베이스라고 한다. 일반적으로 특정 데이터를 확인하고 싶을 때 이 데이터 베이스를 활용한다!(이때 필요한 정보는 순차적으로 정리한다.)

웹 시스템 내의 데이터베이스 📡

아래와 같은 이미지로 구조가 나타나는데, 김제톰을 Web Client(사용자)로 생각하면된다.

web application server에 거치는 이유?

거치는 이유는 두 가지로 나뉠수 있는데 첫 번째는 통신규약에 의해 브라우저단에서 바로 호출 할 수 없으며, 두 번째로는 프론트에서 한번 가공을 거친 후 요청하는 목적에 맞춰 예쁘게 만들어주어 사용자에게 전달해야하기 때문이다.(🙄 예쁜게 짱이다.)

database management system(DBMS)

다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어 도구의 집합이다. DBMS은 사용자 또는 다른 프로그램의 요구를 처리하고 적절히 응답하여 데이터를 사용할 수 있도록 해준다.(데이터베이스는 다른 개념이니 헷갈리지 말아야한다.)

https://url.kr/t814qk

DBMS 사용 이유

데이터베이스 관리 시스템은 데이터베이스를 관리하는 소프트웨어이며 생산성 향상과 기능성, 신뢰성 확보에있다. 데이터베이스가 없으면 메모리에 넣어야하는데, 메모리는 휘발성이라 컴퓨터 전원이 꺼지면 사라지기 때문에 데이터베이스가 꼭 필요하다!

관계형 데이터베이스

데이터 베이스는 관계형 / 비관계형 데이터 베이스로 나뉘어져 있으며 각각의 특징을 살펴보자.

👉 비관계형 데이터 베이스

아무렇게나 저장하고 꺼내올 수 있다는것이 단점과 장점이다. 정말 아무렇게나 저장을 할 수있기 때문에 큰 프로젝트에서는 찾는것이 쉽지 않기때문에 추천하지 않는다.

👉 관계형 데이터 베이스

관계형 데이터베이스는 엑셀처럼 한 눈에 정해진 형식대로 저장 할 수 있으며, 자세한 내용은 다음 주제로 넘어가서 살펴보겠다.

Relational Database Management System(RDBMS)

위에서 짧게 언급한 관계형 테이터 베이스를 더 자세히 설명해보겠다. 관계형 데이터베이스는 행과 열을 가지고 표 형식 데이터를 저장하는 형태의 데이터베이스이며 앞서 언급했듯이 엑셀처럼 나열을한다. 이러한 관계형 데이터베이스는 표를 저장해두고 각각 테이블에 이름을 붙여 관리한다.

id사용자생일성별
1김제톰2016.04.08수컷
2김철민2021.06.25남자
3김태영2017.11.01남자

관계형데이터의 소프트웨어로는 유명한 mySQL(전설의 돌고래)와 postgreSQL, oracle등이 있다.

관계 유형

관계 유형으로 넘어가기전 PK와 FK에 대한 설명부터 설명하겠다.

  • PK: primary Key의 약어로서 모든 데이터를 식별하는 컬럼으로 id값 즉 유니크한 값이라 생각하면 된다.

  • FK: foreign Key의 약어로서 외부 식별자키이다. 테이블 간 잘못된 매핑을 방지하는 역할이다.

👉 https://lovefor-you.tistory.com/261

관계 유형에는 세가지의 유형이 있으며 각 유형에 대해 살펴보자

  1. 일대일 관계(one to one)

하나의 테이블 데이터는 오로지 하나의 테이블 데이터와 연결된다는 뜻이다.

  1. 일대다 관계(one to many)

하나의 데이터가 여러개의 데이터를 가지는것으로서 한번 설정을 하면 바꿀 수 없다.

💡 1:1은 서로가 서로를 바라보고, 1:N은 한 테이블에 다른 테이블이 여러개가 바라보는것 (순애보와 N다리의 차이...?)

  1. 다대다 관게(many to many)

하나의 테이블 데이터는 여러 데이터와 연결 될 수 있다.
이때 서로 각자 다른 테이블의 여러 데이터와 연결 될 때는 두 테이블에 속한 데이터 조합을 입력하기 위한 중간 테이블이 꼭 필요하다.

트랜잭션(transaction)

트랜잭션은 ACID를 보장하면서 일련 작업들이 마치 하나의 작업처럼 취급되어 모두 성공하거나 모두 실패하는 것을 의미한다.

ACID

트랜잭션에서 언급한 ACID란 무엇인지 아래의 내용을 통해 자세히 알아보자.

  1. Atomicity - 원자성이라는 뜻으로 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력이다.

  2. Consistency - 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다.

  3. Isolation - 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장하는 것을 의미한다.

  4. Durability - 성공적으로 수행된 트랜잭션은 영원히 반영되어야 함을 의미한다.

따라서 Atomicity(원자성), Consistency(일관성), Isolation(독립성), Durability(지속성)을 통틀어 ACID라고한다.

👉 https://ko.wikipedia.org/wiki/ACID


음,, 쓰고보니 양도 많고 이해하는데 어려웠지만.. 😂 협업 할 때 효과적으로 서로 의견 전달이 가능하니! 꼭 알아두자고 다짐했다......

profile
사람이 좋은 인간 리트리버 신혜리입니다🐶

0개의 댓글