db 9

[데이터베이스] 12장 - stored procedure를 백엔드 실무에서 쓰기에 조심스러운 이유!

✅ 3-tier architecture 에서 stored procedure의 의미 : 오늘날의 IT회사들은 일반적으로 client-server architecture 의 한 종류인 three-tier architecture 모델로 서비스를 개발한다. 그럼, 비즈니스 로직이란 무엇일까? 당근마켓을 예로 들어보자. 이런 비즈니스 로직들을 통해 파생되는 데이터들이 있을 텐데, 그러한 데이터들이 데이터 티어에 저장된다. 10장에서 Stored Procedure 는 RDBMS에 저장되고 사용된다고 했는데, 주된 사용 목적은 비즈니스 로직 구현이라고 했다. 즉, stored procedure을 사용한다는 것은 data tier에 비즈니스 로직이 존재할 수 있다는 의미이다! 즉, 비즈니스 로직이 Logice 티어에도..

[데이터베이스] 11장 - stored procedure + 프로시저의 동작 방식과 특징, stored function과의 차이

✅ stored procedure 의 뜻과 예제 : 사용자가 정의한 프로시저 : RDBMS에 저장되고 사용되는 프로시저 : 구체적인 하나의 task(태스크)를 수행한다. stored procedure를 만들 때도, delimiter 라는 키워드를 사용한다. delimiter 는 구분자를 의미하는데, 기본적으로 SQL 에서 사용되는 delimiter는 (;)세미콜론이다. 하지만, stored program의 정의를 서버로 보내기 위해서는 delimiter를 일시적으로 재정의 해주어야만 한다. 이 때, 주의해야 할 점은 DELIMITER를 재정의하고 stored program을 정의한 후에 delimiter를 기존의 세미콜론(;)으로 바꿔주는 것이 좋다. (계속해서 DELIMITER를 사용자가 재정의한 것으..

[데이터베이스] 10장 - SQL 에서 stored function 이란? + 언제 사용하면 좋을지에 대해

✅ stored function 의 뜻과 예제 : 사용자가 정의한 함수 : DBMS에 저장되고 사용되는 함수 : SQL의 select, insert, update, delete statement에서 사용할 수 있다. stored function을 만들 때, delimiter 라는 키워드를 사용한다. delimiter 는 구분자를 의미하는데, 기본적으로 SQL 에서 사용되는 delimiter는 (;)세미콜론이다. 하지만, stored program의 정의를 서버로 보내기 위해서는 delimiter를 일시적으로 재정의 해주어야만 한다. 이 때, 주의해야 할 점은 DELIMITER를 재정의하고 stored program을 정의한 후에 delimiter를 기존의 세미콜론(;)으로 바꿔주는 것이 좋다. (계속해서..

[데이터베이스] 9장 - SQL 로 데이터 조회하기! Group by, Aggregation function, Order by

✅ Order by : 조회 결과를 특정 attribute 기준으로 정렬하여 가져오고 싶을 때 사용한다. : default 정렬 방식은 오름차순이다. : 오름차순 정렬은 ASC 로 표기하고, 내림차순 정렬은 DESC 로 표기한다. 바로 예를 살펴보자. statement 는 아래와 같다. - 임직원들의 정보를 연봉 순서대로 정렬해서 알고 싶다. 임직원의 정보를 "연봉" 순서대로 알고 싶으므로, salary 속성을 오름차순으로 정렬해주면 된다. SELECT * FROM EMPLOYEE ORDER BY salary; 기본 정렬 방식은 ASC 으로 오름차순을 따른다. 그럼, 내림차순으로 정렬하고 싶을 떄는 어떻게 해야 할까? DESC 키워드를 써주면 된다. SELECT * FROM EMPLOYEE ORDER B..

🎮 [테크레터 2편] 인덱스 Index ?

인덱스라는 말 들어보셨나요? 덱스에 빠져버리고 싶은 마음... 이것이 인덱스? 아닙니다. 오늘 설명드릴 인덱스(Index)는 데이테베이스에서 자주 접할 수 있는 개념입니다! Index 란 말 어디서 들어보셨죠? 인덱스는 책 맨 뒷 편에서 볼 수 있거나 찾아보기 란에서 종종 볼 수 있습니다. 책에서 이런 페이지를 제공하는 이유는 책을 다 읽지 않고도 원하는 정보만 빠르게 찾아서 해당 위치만 읽을 수 있도록 하기 위함입니다. 데이터베이스에서의 인덱스도 마찬가지입니다. 데이터베이스의 인덱스는 검색 속도를 향상시키기 위한 일종의 자료구조입니다. 강아지 정보가 있는 테이블에서 species(종)이 '웰시코기'인 값을 찾는다고 해봅시다. 일반적인 경우에 전체 데이터를 조회하면서 species(종)이 '웰시코기'인 ..

[데이터베이스] 5장 - SQL 로 데이터 조회하기! SELECT 를 활용해서 데이터를 읽어오는 기본적인 문법과 관련 키워드들

✅ SELECT 로 데이터 조회하기 SELECT statement 는 아래와 같다. - ID 가 9인 임직원의 이름과 직군을 알고 싶다. : 현재 Employee 테이블은 아래와 같다. SELECT name, position FROM employee WHERE id = 9; 여기서 SELECT 뒤에 오는 COLUMN(속성,열) 들을 projection attributes 라고 한다. 즉, 내가 관심있는 속성만 투영해서 가지고 온다는 의미이다. 즉, 우리가 원하는 컬럼인 name 과 position 에 해당하는 값들만 뽑아서 가져온다. 그리고, WHERE 이하를 selection condition 이라고 하는데, 이는 행을 결정해 준다고 생각하면 된다. (여기서는 id=9인 행) 다시말해, 이 projec..

[데이터베이스] 4장 - SQL로 DB에 데이터를 추가(insert)하고 수정(update)하고 삭제(delete)하는 방법

✅ 데이터 추가하기 : Employee 테이블부터 데이터를 추가해보자. INSERT INTO 테이블 VALUES () 키워드로 데이터를 추가한다. 이 때, VALUES 에 넣어주는 값 순서는 테이블을 생성할 때, attribute를 넣어준 순서대로 값을 넣어주면 된다. create table EMPLOYEE( id INT PRIMARY KEY, name VARCHAR(30) NOT NULL, birth_date DATE, sex CHAR(1) CHECK(sex in ('M','F')), position VARCHAR(10), salary INT DEFAULT 50000000, dept_id INT, FOREIGN KEY (dept_id) references DEPARTMENT(id) on delete S..

[데이터베이스] 2장 - 관계형 데이터베이스 개념과 relation, primary key, foreign key, constraints

✅ relational 이 수학적으로 어떤 의미일까? : subset of Cartesian Product - 카테시안 곱(곱집합)의 부분집합이다. - CROSS JOIN : set of tuples - 튜플의 집합이다. ✅ 그럼 데이터모델에서 relational 하다는 어떤 의미일까? : student relation을 예를 들어 relational data model을 이해해보자! step 1 ) 도메인(domain) 정의하기 students_ids : 학번 집합, 7자리 정수 human_names : 사람 이름 집합, 문자열 university_grades : 대학교 학년 집합. {1,2,3,4} major_names : 대학교에서 배우는 전공 이름 집합 phone_numbers : 핸드폰 번호..

[데이터베이스] 1장 - 데이터베이스 기본 개념

✅ 데이터 베이스(Database - DB) : 전자적으로 저장되고 사용되는 관련있는 데이터들을 조직화된 집합 : 여기에는 단어, 숫자, 이미지, 비디오 및 파일 등을 포함한 모든 유형의 데이터가 포함될 수 있다. : 관련있는 데이터란 ? → (같은 출처나 혹은 같은 목적, 같은 서비스 안에서 생성되는) 데이터를 말함 ✅ 데이터 베이스 관리 시스템(DataBaseManagementSystem - DBMS) : 사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 소프트웨어 시스템 : (ex. PostgreSQL, MySQL, Oracle, SQLServer ...) : DB 를 정의하다 보면, 부가적인 데이터가 발생한다. : 여기서 부가적인 데이터란 ? → (메타데이터) ✅ 메타데이터(MetaDa..

반응형