반응형

전체 글 1480

SQL Server - 정규화, 1~3 정규형 [1NF, 2NF, 3NF]

제 1 정규형 (First Normal Form, 1NF) 1. 각 열에 들어있는 데이터가 원자성을 가지고 있어야 한다. (중복 값 없이 콤마로 분류되지 않게) The data in each column should be atomic. No multiple values, separated by comma. 2. 테이블은 반복되는 열 그룹을 가지면 안된다. The table does not contain any repeating column groups. 3. 기본키를 사용하여 각 레코드를 식별하게 한다. Identify each record uniquely using primary key. 제 2 정규형(Secound Normal Form , 2NF) 1. 모든 테이블이 1정규형의 조건을 가지고 있어야 ..

Database/SQL Server 2020.12.08

SQL Server - 데이터베이스 정규화 Database normalization

정규화란 무엇인가 ? What is Normalization 데이터베이스 정규화란 데이터 중복을 최소화하기 위해 데이터를 구성하는 과정으로 데이터의 일관성을 보장함. Database normalization is the process of organizing data to minimize data redundancy(data duplication), which in turn ensures data consistency. 데이터 중복의 문제 Problems of Data Redundancy 1. 디스크 공간 낭비 Disk Space Wastage 2. 데이터의 불일치 Data Inconsistency 3. 데이터 불러오는 쿼리가 느려진다 DML(Data Manipulation Language) querie..

Database/SQL Server 2020.12.08

SQL Server - 재귀적 공통 테이블 식 (Recursive CTE)

재귀적 CTE 예 --A simple self join Select Employee.Name as [Employee Name], IsNUll(Manager.Name, 'Super Boss') as [Manager Name] from tblEmployee Employee left join tblEmployee Manager on Employee.ManagerId = Manager.EmployeeId With EmployeesCTE (EmployeeId, Name, ManagerId, [Level]) as ( Select EmployeedId, Name, ManagerId, 1 from tblEmployee where ManagerId is null union all Select tblEmployee.Emp..

Database/SQL Server 2020.12.08

MS SQL-파생 테이블 정리 & 공통 테이블 식(CTE) in SQL Server

테이블 원본 말고 나올 수 있는 여러 가지 테이블 Views, Table Variable, 로컬 임시 테이블, 글로벌 임시 테이블을 비교해 보자 뷰 Views, Create view vWEmployeeCount as Select DeptName, DepartmentId, COUNT(*) as TotalEmployees from tblEmployee join tblDepartment on tblEmployee.DepartmentId = tblDepartment.DeptId Group by DeptName, DepartmentId Select DeptName, Total Employees from vWEmployeeCount where TotalEmployees >= 2 메모 : 뷰는 데이터베이스에 저장된다..

Database/SQL Server 2020.12.08

SQL Server - 트리거, DML(Data Manipulation Language) trigger에 대해

트리거 종류 Trigger types 1. DML(Data Manipulation Language) triggers - 뷰나 테이블 관련하여 DML문의가 발생될 때 작동 2. DDL(Data Definition Language) triggers - 서버나 데이터베이스에 DDL문의가 발생될 때 작동 3. Logon trigger - 사용자의 로그온 이벤트가 발생될 때 작동 DML triggers Types 1. After triggers INSERT, UPDATE, DELETE 등의 이벤트가 발생 되고 난 뒤에 작동. 테이블에만 작동하고 뷰에선 작동 안함. 2. Instead of triggers INSERT, UPDATE, DELETE 등의 이벤트가 발생하기 전에 작동하는 트리거. 테이블과 뷰 다 작동이..

Database/SQL Server 2020.12.05

MS SQL - 인덱스 뷰 Indexed View

기본 표준 뷰(인덱스가 안된)는 그냥 쿼리에만 존재한다. 뷰에서 데이터를 불러오려고 할 때에 데이터는 뷰가 기반한 테이블에서 불러져 온다. 그러니 뷰는 기본적으로 가상테이블과 같고 data를 가지지 않는다. 그러나 인덱스가 뷰에 만들어진다면 그때부터 이야기가 달라진다. 구체화가 되어지고 데이터를 가질 수 있다. SQL server에서는 이것을 indexed View라고 하고 Oracle에서는 Materialized view라고 한다. 인덱스 뷰 만들기 Create view vWTotalSalesByProduct with SchemaBinding as Select Name, SUM(INSULL((QuantitySold * UnitPrice), 0)) as TotalSales, COUNT_BIG(*) as ..

Database/SQL Server 2020.12.05

MS SQL - 뷰란 ? What is a View?

뷰란 ? What is a View? 뷰는 그냥 저장된 쿼리이다. 가상 테이블정도로 생각하면 된다. A view is nothing more than s saved SQL query. A view can also be considered as a virtual table. 뷰 수정 To modify a view ALTER VIEW statement 뷰 삭제 To drop a view DROP VIEW vWName 뷰의 장점 Advantages of views 뷰는 데이터베이스의 스키마의 복잡성을 줄일 수 있다. Views can be used to reduce the complexity of the database schema 뷰는 행과 열의 보안 수준을 구현하는 메커니즘으로 활용 될 수 있다. View..

Database/SQL Server 2020.12.05

MS SQL - 인덱스의 장점 & 단점 / Advantages and disadvantages of indexes

장점 쿼리를 사용하여 테이블의 데이터를 찾는 속도가 인덱스로 인해 매우 빨라질 수 있다. 적은 양의 데이터일 때보다 많은 양의 데이터를 처리할 때에 빨라짐의 체감은 더 커진다. Indexes are used by queries to find data quickly 단점 추가적인 저장 공간(비클러스터만 그렇지만 일단 index의 단점) 업데이트나 삭제할 때 인덱스가 있음으로 느려진다. (성능의 저하를 일으킴) 자주 바뀌는 테이블 같은 경우 인덱스의 재정립이 필요할 수도 있다. 인덱스만으로 결과를 얻기 때문에 다른 컬럼의 정보를 보려면 추가적인 작업을 해야할 때가 있다. Additional Disk Space Insert Update and Delete statements can become slow Cov..

Database/SQL Server 2020.12.04

MS SQL - 유니크 인덱스 / 비 유니크 인덱스(Unique index / Non Unique index)

유니크 인덱스 Unique index 유니크 인덱스는 키 값의 고유성을 지켜준다(?). 기본키(Primary Key)는 기본적으로 unique clustered index로 된다. 고유성은 인덱스의 성질느낌으로 클러스터 유무에 상관없이 적용이 가능하다. Unique index is used to enforce uniqueness of key values in the index. By default, Primary Key constraint, creates a unique clustered index. Uniqueness is a property of an index, and both CLUSTERED and NON-CLUSTERED indexes can be UNIQUE. 고유 제약 조건(Unique c..

Database/SQL Server 2020.12.04

MS SQL - 인덱스 / Index (Clustered, Nonclustered, Unique etc)

왜 인덱스(Why Indexes) 인덱스는 테이블에서부터 데이터를 찾아 오는 쿼리를 빠르게 해준다. 인덱스는 테이블과 뷰에 생성되어 지는데 책에서 우리가 보는 목차랑 비슷한 역할을 한다. Indexes are used by queries to find data from tables quickly. Indexes are created on tables and views. Index on a table or a view, is very similar to an index that we find in a book. 인덱스 종류(Index types) 1. 클러스터 Clustered 2. 넌 클러스터 Nonclustered 3. 유니크 Unique 4. 필터 Filtered 5. XML 6. Full Text ..

카테고리 없음 2020.12.04

MS SQL - 암호화 와 스키마바인딩, 임시 테이블(로컬, 글로벌)[Encrypting & Schema binding], Temporary tables(Local , Global)]

암호화 함수나 프로시저를 보호하고 싶을 때 암호화를 하면 된다. EX) CREATE FUNCTION Fn_GetNameById(@Id int) Returns nvarchar(30) with ENCRYPTION as .... 스키마 바인딩(Schemabinding) 스키마를 묶는다는 의미같은데 일단 쿼리를 쓸 때에 '*'을 쓸 수 없다. 컬럼명을 직접 지정해줘야한다. 그리고 From뒤에 테이블 이름을 넣을 때에도 절대 경로(?) 절대 이름을 넣어줘야한다. 뷰를 묶어서 저장시킨다는 개념인데 왜 굳이 그러냐 하면 인덱스를 넣을 수 있어서 이다. 로컬 임시 테이블(Local Temporary tables) 테이블 이름 앞에 #(샾)을 붙이면 된다. 이렇게 해서 Created 된 테이블은 tembdb에 tempo..

Database/SQL Server 2020.12.04

MS SQL - 결정적 함수 와 비결정적 함수(Deterministic and Nondeterministic)

- 결정적 함수 데이터베이스의 상태가 같을 경우 특정 입력 값 집합으로 호출될 때마다 항상 동일한 결과를 반환합니다. Always return the same result any time they are called with a specific set of input values and given the same state of the database Ex) Square(), Power(), Sum(), AVG() and Count() - 비결정적 함수 액세스하는 데이터베이스의 상태가 동일하게 유지되더라도 특정 입력 값 집합으로 호출될 때마다 다른 결과를 반환할 수 있습니다. 예를 들어 AVG 함수는 항상 위에서 설명된 조건 May return different results each time they ..

Database/SQL Server 2020.12.04

MS SQL-사용자 지정 함수(스칼라, 인라인 테이블, 다중 테이블)

사용자 지정 함수의 종류(User Defined Functions Type) 1. 스칼라 사용자 지정 함수(Scalar User Defined functions) 스칼라 값만 리턴하는 함수 2. 인라인 테이블 반환 사용자 지정 함수(Inline Table Valued Functions) 테이블을 리턴하는 함수 비긴(Begin)과 엔드(END)를 쓰지 않음 예) CREATE FUNCTION Fn_EmployeeByGender(@Gender nvarchar(10)) RETURNS TABLE AS RETURN (Select Id, Name, Gender From tableEmployees where Gender = @Gender) 3. 다중 테이블 반환 사용자 지정 함수(Multistatement Table ..

Database/SQL Server 2020.12.04

MS SQL Query 내장 함수(문자열, 숫자, 시간 관련 )

String Functions ASCII(Character_Expression): 글자를 숫자로 변환시킴 CHAR(Integer_Expression): 숫자를 글자로 변환시킴 LTRIM(Character_Expression): 왼쪽 공백을 지움 RTRIM(Character_Expression): 오른쪽 공백을 지움 LOWER(Character_Expression): 소문자로 변환시킴 UPPER(Character_Expression): 대문자로 변환시킴 REVERSE('Any_String_Expression'): 글자를 뒤집어서 나열한 것을 리턴함. LEN(String_Expression): 글자 개수를 리턴함. LEFT(String_Expression, Integer_Expression): 왼쪽부터 주어..

Database/SQL Server 2020.12.04

SQL Server-트리거 생성, ID 확인(Identity), 유니크 키 만들기, 조인 Join, having 과 where , stored procedure 프로시저 , 암호화(Encryption)

트리거 생성 / Create Trigger Create Trigger trForInsert on Test1 for Insert as Begin Insert into Test2 Values('YYYY') End ID확인하는 세가지 방법 Select SCOPE_IDENTITY() Select @@IDENTITY Select IDENT_CURRENT('Test2') DENT_CURRENT는 임의의 세션과 범위에 있는 특정 테이블에 대해 생성된 마지막 ID 값을 반환합니다. @@IDENTITY는 전체 범위에 걸쳐 현재 세션에 있는 임의의 테이블에 대해 생성된 마지막 ID 값을 반환합니다. SCOPE_IDENTITY는 현재 세션과 현재 범위에 있는 임의의 테이블에 대해 만들어진 마지막 ID 값을 반환합니다. [펌..

Database/SQL Server 2020.12.03

MS SQL Server - 데이터베이스 생성/변경/삭제 , 테이블 생성/변경/삭제, 제약조건 생성

데이터베이스 만들기 Creating a Database Create Database Database_Name 데이터베이스 이름 바꾸기 Altering a Database Alter database DatabaseName Modify Name = NewDatabaseName 데이터베이스 삭제 Deleting a database Drop Database 삭제하고픈DB이름 만약 다른 유저가 연결 되어있어 삭제가 안될때 If other users are connected, we need to put the database in single user mode and drop the database. Alter Database DatabaseName Set SINGLE_USER With RollBack Immedi..

Database/SQL Server 2020.12.01

Outlook 2016 과 gmail 연동하기

여기서 아무것도 치지말고 두번째 Manual setup or additional server types 을 쓴다 POP or IMAP을 고른다. 화면에 보이는 것 처럼 작성을 한다. 두 번째 탭 Outgoing server에서 하나 밖에 없는 체크 박스를 눌러준다. 이렇게 하고 난 다음 다음 탭으로 간다. 회사에서 받은 숫자들을 입력한다. 그리고 원래 화면으로 가서 넥스트를 누른다 만약 여기서 안된다면 gmail 세팅으로 간다. 먼저 톱니바퀴를 찾은 다음 2번 see all settings를 클릭한다. 6번째 탭에 들어간 다음 자신의 회사에서 사용하는 통신규약에 따라서 엑세스 허용을 해준다 참고로 pop3는 로컬에 저장이 되고 따로 따로 된다. 저렴하다. imap는 연동이 되어 실시간으로 업뎃이 된다. ..

etc. 2020.12.01
반응형