본문 바로가기

분류 전체보기149

[SQL] 정규화 1. 정규화이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정따라서 여러 개의 릴레이션을 생성하게 된다.이를 구분하여 정규형이 높아질수록 이상현상은 줄어들게 된다.중복된 데이터를 허용하지 않는 다는 것이며, 정규화를 통해 무결성을 유지할 수 있고, DB의 저장 용량 역시 줄일 수 있다.2. 정규화의 장단점1) 장점DB 변경 시 이상 현상을 제거할 수 있다.정규화된 데이터베이스 구조에서는 새로운 데이터 형의 추가로 인한 확장 시, 그 구조를 변경하지 않아도 되거나 일부만 변경해도 된다.DB와 연동된 응용 프로그램에 최소한의 영향만을 미치게 되어 응용프로그램의 생명을 연장시킨다.2)단점릴레이션의 분해로 인해 릴레이션 간의 JOIN 연산이 많아진다.질의에 대한 응답 시간이 느려질 수도 있다. 데이터의 .. 2024. 10. 2.
[SQL] 논리적 조인과 물리적 조인 1. 논리적 조인SQL 쿼리에서 JOIN 문을 사용하여 테이블 간의 관계를 표현하는 방식논리적 조인은 데이터베이스가 내부적으로 어떤 방식을 조인을 처리할지를 명시하지 않는다.1) INNER JOIN두 테이블 간의 공통된 값이 있는 행들만 결합하는 조인공통 데이터만 필요할 때 유용하다SELECT employees.name, departments.dept_nameFROM employeesINNER JOIN departmentsON employees.dept_id = departments.dept_id;직원과 부서 정보를 조인하여 직원이 속한 부서의 이름을 함께 표시하고 싶을 때 사용한다.  2) LEFT JOIN왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블과 일치하는 데이터가 있으면 그 값을 결합한다.일.. 2024. 10. 2.
[SQL] 논리적 쿼리 실행 순서 1. 논리적 쿼리 실행 순서FROM 절WHERE 절GROUP BYHAVINGSELECTORDER BYLIMIT2. 쿼리 실행의 순서가 중요한 이유1) 문법OrderBy 절에서 Alias 사용OrderBy는 select 절 보다 뒤에 실행되기 때문에 SELECT 절의 결과를 사용할 수 있다.SELECT CONCAT(first_name, last_name) AS full_nameFROM userORDER BY full_name; Where 절에서 Alias 사용Where 절에서는 Select 절 보다 먼저 실행되기 때문에 select 절에서 사용한 AS를 사용할 수 없다.따라서 아래 쿼리는 에러가 발생한다.SELECT CONCAT(first_name, last_name) AS full_nameFROM use.. 2024. 10. 2.
[OAuth 2.0] OAuth 2.0 1. OAuth 2.0 (Open Authorization)OAuth 2.0은 인터넷 사용자들이 제3자 애플리케이션에 자신의 자격 증명을 노출하지 않고, 서비스에 대한 접근 권한을 안전하게 부여할 수 있는 인증 및 권한 부여 프레임워크입니다. 주로 소셜 로그인, API 사용 권한 위임 등에서 사용됩니다.OAuth 방석 : 로그인 시 외부 소셜 계정을 기반으로 간편하게 인증하는 인증 서비스가 많은데, 이렇게 Third-Party 프로그램(우리가 개발하는 웹)이 Client를 대신해 리소스 서버에서 제공하는 자원에 대한 접근 권한을 위임받는 방식2. 주요 개념Resource Owner (자원 소유자) : 사용자로, 서비스에 대한 접근 권한을 가지고 있는 주체구글 계정에 로그인한 사용자Client (클라이언트.. 2024. 10. 2.