T'SPACE

다채로운 에디터들의 이야기

728x90
반응형

컴퓨터공학/데이터베이스 DB 10

데이터베이스 뷰 View

데이터베이스에서는 모든 유저가 아무 데이터나 접근하게 허락하는 것은 좋은 구조가 아닙니다기밀내용이 있을 수도 있거나단순하게 일반 유저들에게 너무 데이터가 많아 복잡할 수도 있습니다그래서 예를들어 누군가 강사의 성함이랑 부서를 알고싶어하지만굳이 강사의 급여를 공개할 필요가 없을 때 에는아래처럼 SELECT문을 사용하면 되는데Select id, name, dept_namefrom instructor;-> 실제 테이블 (relation)이 아닌 가상의 relation은 view라고 합니다 하지만 실제로 View를 어떻게 정의하는지 알아볼까요CREATE VIEW V AS  이 형식의 SQL로 하면되는데 위의 시나리오 같은 경우 어떻게 되는지 봅시다create view faculty asselect id, nam..

전공생의 데이터베이스 수업 수강 전 SQLD 합격 후기

SQLD (SQL Developer) 자격증 안내: 준비부터 합격까지 완벽 가이드​안녕하세요! SQLD (SQL Developer) 자격증에 대한 정보와 준비 방법을 자세히 소개해드리겠습니다.SQLD는 데이터베이스 분야에서 중요한 자격증으로, 많은 분들이 취득을 고려하고 계십니다.이 글에서는 SQLD의 개요부터, 준비 방법, 그리고 유효 기간, 그리고 제가 어떻게 합격했는지까지 모든 것을 다루어보겠습니다.​SQLD란 무엇인가요?SQLD (SQL Developer) 자격증은 SQL을 활용하여 데이터베이스를 설계하고 운영하는 능력을 검증하는 자격증입니다. SQLD 자격증을 취득하면 데이터베이스에 대한 이해도를 높일 수 있으며, 데이터 관련 업무에 필요한 기본적인 역량을 증명할 수 있습니다.​SQLD 시험 정..

Correlated Subquery 상관 서브쿼리

서브쿼리 SubqueryDML의 서브쿼리DELETE서브쿼리는 WHERE 절에서 사용될 수 있습니다.DELETE FROM ... WHERE ... 예시)강사의 평균 급여보다 낮은 급여를 받는 모든 강사 삭제 DELETE FROM instructorWHERE salary  스칼라 Scalar 서브쿼리문제: 일부 튜플이 삭제되면 평균이 변경됨→ 하지만 SQL은 먼저 평균을 계산하고 그 값과 비교합니다INSERTR에 튜플 삽입원래는 다음과 같습니다INSERT INTO R VALUES (attributes)R에 튜플을 삽입하기 위해서브쿼리를 사용하면INSERT INTO R subquery삽입할 일부 튜플을 관계에서 찾기 위해 UPDATE서브쿼리는 WHERE 절에서 사용될 수 있습니다UPDATE ... SET ....

SQL 서브쿼리 Subquery

서브쿼리평균 급여보다 높은 급여를 받는 사람은 누구인가요?→ 서브쿼리를 활용할 수 있습니다 메인 쿼리: 어떤 직원들이 평균 급여보다 높은 급여를 받고 있나요?서브쿼리: 평균 급여는 얼마인가요?다른 쿼리 내에 중첩된 SFW 표현식더 큰 쿼리 내에 중첩된 SQL을 포함합니다외부 쿼리 - 내부 쿼리여러 절에서 사용할 수 있습니다WHERE 절스칼라 서브쿼리단일 상수를 반환하는 서브쿼리WHERE 절에서 서브쿼리를 상수처럼 사용하여 모든 연산자를 사용할 수 있습니다집합 멤버십집합 멤버십에는 IN, NOT IN, EXISTS, NOT EXISTS 연산자를 사용합니다값이 서브쿼리의 결과 관계에 있는지 확인하는 조건집합 비교집합 비교에는 ANY (SOME), ALL을 사용합니다서브쿼리의 결과 관계의 임의 값 또는 모든 ..

외부 조인과 내부 조인 Inner Join and Outer Join

JOIN 표현식다중 테이블에 대한 쿼리왜 우리는 다중 테이블을 사용할까요?단일 테이블:데이터 교환(공유)이 더 쉽습니다하지만 데이터 중복, 이상 현상, 확장성, 유연성 문제가 있습니다다중 테이블:데이터 업데이트가 더 쉽습니다각 개별 테이블에 대한 쿼리가 더 빠릅니다다중 테이블에 대한 쿼리는 다음과 같이 구현할 수 있습니다:FROM 절에 테이블을 나열동일한 이름의 속성이 있는 경우, "."을 사용→ Cartesian Product 카티션 곱(Cross join), JoinSELECT nameFROM Student, EnrolledWHERE sid = student_idCartesian Product 카티션 곱 (Cross Join)두 관계에 동일한 이름의 필드가 있는 경우, 속성 이름에 해당 속성이 원래 ..

기초 SQL문 정리 SFW, HAVING, GROUP BY ...

SFW 쿼리SELECT FROM WHERE  이를 관계 대수로 표현하면 다음과 같습니다:FROM - 어떤 테이블인가?WHERE - 어떤 행에 관심이 있는가?SELECT - 어떤 속성을 찾고 있는가?예) CS 학과의 모든 강사 중 급여가 70,000달러보다 많은 사람들의 이름을 찾으시오.SELECT i.nameFROM Instructor iWHERE i.deptName='CS' and i.salary>70000유용한 연산자들DISTINCT쿼리 결과에서 중복을 제거합니다. ORDER BY쿼리 결과를 일부 속성에 따라 정렬합니다.SELECT FROMWHEREORDER BY {속성} DESC, {속성} ASC ASC - 오름차순 정렬 (기본값)DESC - 내림차순 정렬 LIKE간단한 문자열 패턴 매칭을 위해 사..

데이터베이스 SQL DDL과 DML

데이터 정의 언어 Data-Defining Language(DDL)관계형 스키마를 정의합니다테이블과 그 속성을 생성/수정/삭제합니다타입무결성 제약 조건 테이블 생성하기CREATE TABLE r( A1 D1, A2 D2, ..., An Dn, (무결성-제약조건1), ..., (무결성-제약조건k)); r은 관계의 이름입니다각 A는 관계 r의 스키마에 있는 속성 이름입니다D는 속성 A의 도메인에 있는 값들의 데이터 타입입니다SQL 키워드는 대소문자를 구분하지 않습니다 ↔ 하지만 문자열 값은 구분합니다→ 'Strings'처럼 작은따옴표를 사용합니다→ 문자열 내에서는 작은따옴표를 두 번 사용합니다 → 'O''Neill'테이블을 선언할 때 포함할 내용속성과 그 타입들기본 키 정..

데이터베이스 Relational Algebra 관계 대수

관계형 쿼리 언어데이터베이스에서 데이터를 조작하고 검색할 수 있게 해줍니다관계 대수를 사용합니다관계 대수선언적(SQL) 쿼리를 정확하고 최적화 가능한 표현으로 변환할 수 있게 해줍니다 하나 또는 두 개의 관계를 입력으로 받아 새로운 관계를 생성하는 연산 집합입니다한 관계: 단항 연산선택, 투영, 이름 변경 등두 관계: 이항 연산카티션 곱, 집합 차이결과 관계의 스키마는 입력 관계와 쿼리에 의해 결정됩니다다른 쿼리의 입력으로 사용될 수 있습니다 → 서브쿼리 (Subquery)!관계 대수 연산자핵심 5가지 연산자선택 σ Selection선택 연산자 σ(시그마)는 입력 관계에서 유지할 행을 지정합니다조건은 부울 표현식입니다투영 π Projection투영 연산자 π(파이)는 입력 관계에서 유지할 열을 지정합니다..

관계형 데이터베이스 모델, Relational Data Models

데이터 모델데이터의 제약 조건 (Constraints)데이터가 될 수 있는 것의 한계를 설명데이터의 정확성(데이터 무결성, Data Integrity) 보장예) 나이 > 0, 학생 ID는 고유함도메인 제약 조건무결성 제약 조건데이터 연산쿼리 언어 사용 (예: SQL)SQL - Standard Query Language두 종류의 연산정보를 검색하는 연산데이터베이스를 변경하는 연산선언적(Declarative) 언어 (↔ 절차적 (Procedural)언어) → 일반 프로그래밍 언어찾는 방법이 아닌 무엇을 찾을지 설명관계형 데이터 모델테이블의 집합관계? Relations행 내의 값들 간의 관계테이블 간의 관계다른 모델들키-값 모델반구조화 모델 관계형 모델의 기초구조관계형 데이터베이스는 관계의 집합 → 행과 열이..

DB 입문, 데이터베이스 기초

DBMS - 데이터베이스 관리 시스템 DB에 접근하고, DB에 데이터를 저장하며, DB에서 원하는 정보를 검색하고 DB를 관리하는 프로그램 SQL(Structured Query Language)을 사용함 데이터베이스에 대한 모든 접근은 DBMS에 의해 중앙 집중식으로 관리됨 반드시 갖춰야 할 특성: 편리성복잡성 관리의 핵심은 추상화 (Abstraction)프로그래머는 데이터가 어떻게 구조화되고 저장되는지 걱정할 필요가 없음효율성 수백만 개의 레코드 중 하나의 레코드에 반복적으로 접근해야 할 경우, 인덱스가 유용함원자성과 ACID동시성 제어 및 잠금예) 테이블을 조인하기 전에 "물리학" 전공 교수만 남기는 것이 테이블을 조인한 후 "물리학" 교수를 찾는 것보다 훨씬 효율적임 안전성트랜잭션 및 충돌 복구인증..

728x90
반응형