본문 바로가기
  • 마침표 보다 쉼표를 나타내자
프로그래밍/SQL

데이터베이스란?

by Y코더 2024. 3. 10.
728x90

기초부터 간단히 집고 넘어가자!!

취업하기 위해 프로젝트를 급급하게 만들다 보면

이해도가 많이 떨어지기에 하나씩 알아보도록 하자.

 

SQL 카테고리를 여는 첫 글이기에 개념으로 시작하기로 했다.


SQL이란?

Structured Query Language

 

데이터베이스를 쓰기 위해 배워야하는 언어이다.

흔히 쿼리문이라고 말할 때 이 언어를 일컫는 것이다.


구조에 대하여

1. 데이터 : 가장 기본적인 단위

2. 필드 : 레코드를 구성하는 기본단위 - 속성값이 있는 데이터

3. 레코드 : 테이블을 구성하는 기본요소

4. 테이블 : 레코드의 모임

 

생각하기를 데이터가 모여 필드를 이루고

필드의 모임이 레코드이며 레코드가 모여서 테이블을 만든다.

이렇게 생각하면 쉽게 이해할 수 있다.


Key에 관해

1. 기본키

Primary Key

 

테이블은 레코드가 모여서 이루게 되는데

이 레코드가 중복이 되지 않도록 해주는 것이다.

 

예를 들어본다면 회원가입이 있다.

admin이라는 회원으로 가입을 하려고 하는데

회원 테이블에 값이 존재하면 가입 불가, 존재하지 않으면 가입
이렇게 사용할 수 있다.

 

2. 외래키

Foreign Key

 

테이블의 관계를 나타내기 위해 속성값을 매치 시켜야한다면?

그렇다! 우리는 필드라는 것을 배웠고 이 필드를 활용하여

테이블의 관계를 나타내면 된다.


ERD

앞서 말한 내용들을 그리는 것을 ERD라고 하는데

https://www.erdcloud.com/

 

ERDCloud

Draw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool.

www.erdcloud.com

 

여기서 ERD를 자주보며 따라 그리면서 이해하면

실무에 정말 도움이 될 것 같다.


SQL 명령의 종류

1. DDL(Data Definition Language) : 데이블 구조를 정의

  • CREATE TABLE: 테이블을 생성한다.
  • ALTER TABLE: 테이블 구조를 변경한다.
  • DROP TABLE: 테이블을 삭제한다.

2. DML(Data Manipulation Language) : 테이블 내용을 검색, 추가, 수정, 삭제

  • SELECT: 테이블에서 데이터를 검색한다.
  • INSERT INTO: 테이블에 데이터를 추가한다.
  • UPDATE: 테이블의 데이터를 수정한다.
  • DELETE FROM: 테이블에서 데이터를 삭제한다.

3. DCL(Data Control Language) : 데이터베이스 접근 권한 설정

  • GRANT: 사용자에게 데이터베이스 접근 권한을 부여한다.
  • REVOKE: 사용자에게 부여된 데이터베이스 접근 권한을 제거한다.

4. TCL(Transaction Control Language) :  트랜잭션을 관리

  • COMMIT: 트랜잭션을 완료한다.
  • ROLLBACK: 트랜잭션을 취소한다.

🎯 프로시저와 트랜잭션에 관해 알아보자

예시를 은행계좌 입금으로 들겠다.

필자가 옵시디언으로 그린 유즈케이스를 보자!!

 

프로시저

 

반복적인 작업을 자동화하고 코드를 재사용하는데 초점을 둔다.

 

트랜잭션

 

데이터 무결성을 유지 하는 것꽈 일관성을 보장 하는데 초점을 둔다.

 

한눈에 알아보자!!

구분 트랜잭션 프로시저      
목적 데이터 무결성 유지, 일관성 보장
반복적인 작업 자동화, 코드 재사용
     
작동 방식 여러 SQL 문을 하나의 단위로 처리
SQL 문을 포함하는 함수처럼 작동
     
장점 데이터 무결성 보장, 일관성 유지, 오류 발생 시 데이터 손실 방지
반복적인 작업 자동화, 코드 재사용, 개발 효율 향상
     
단점 복잡한 경우 설계 및 관리 어려움, 성능 저하 가능성
디버깅 어려움, 코드 관리 복잡성 증가
     
사용 시나리오 은행 계좌 이체, 온라인 쇼핑 결제, 데이터베이스 업데이트
회원 가입, 상품 주문 처리, 데이터 분석
     
공통점
1. SQL 문 사용
2. 데이터베이스 작업 자동화
3. 데이터 무결성 유지
4. 코드 관리에 이점
5. 성능 향상
     

 

이렇게!!

트랜잭션과 프로시저는 데이터베이스 작업의 효율성과 신뢰성을 높이는 데 필수적인 기능이다.

상황에 맞게 활용하여 최적의 데이터 관리 환경을 구축 해보도록 하자.


CRUD 란?

 

https://yy-tech.tistory.com/186

 

데이터 베이스 연결

이때까지 해오던 방식이 아니고 이 새로운 방법은 마치 마법처럼 연결된다. 해오던 방식은 아래와 같다. 자바에서 (이클립스) String으로 쿼리문을 짜서 executeQuery 등으로 쿼리문을 넘겨줘서 값을

yy-tech.tistory.com

 

필자가 예전에 작성해 둔 내용이다.

이 내용을 읽으면 나중에 도움이 될 것이다.

 


프로그램 소개

 

필자는 순서대로

 

1. sqldeveloper

2. DBeaver

3. DataGrip

 

을 사용했다.

 

sqldeveloper와 DBeaver는 무료프로그램이다.

특히 DBeaver는 큐브리드를 지원하기에 편리하게 쓸 수 있다.

지금은 DataGrip을 사용하고 있는데 인텔리제이 안에 있는 데이터베이스 기능과 비슷하다.

다만 오라클에서는 인덱싱이 느려서 조금 아쉽다.

 

P.S

개발자는 SQL을 사용하는 능력이 매우 중요하다.

간혹 괜찮다 하는 사람을 볼 수 있는데

이미 그 사람은 SQL을 모두 통달했을 가능성이 매우 높다.

그러니 본인만의 길을 잡고 나아가는데 힘을 써야한다.

728x90

'프로그래밍 > SQL' 카테고리의 다른 글

서브쿼리 EXISTS  (117) 2024.03.20