반응형

분류 전체보기 72

정처기 수준에서의 데이터베이스 - 함수적 종속성

보다 효율적인 데이터베이스 스키마 구축을 위해 정규화를 한다. 정규화라는 것은 테이블을 정해진 규칙 아래에서 테이블을 쪼개는 행위. 정규화 = 1. 키, 무결성의 개념 이해. 2. 이상현상 이해. 3. 함수적 종속성 이해. 4. 정규화 과정 이해. 이상(Anomaly) = 데이터 중복으로 인해 릴레이션 조작 시 예상하지 못한 곤란한 현상이 발생. 이상은 속성들 간에 존재하는 여러 종류의 종속 관계를 하나의 릴레이션에 표현할 때 발생 (개념적 설계 단계 -> 스키마 -> 구축) 설계를 잘못해서 생기는 현상! 이상의 종류 => 삽입 이상(Insertion Anomaly) / 삭제 이상(Deletion Anomaly) / 갱신 이상(Updating Anomaly) =========================..

정처기 수준에서의 데이터베이스 - 키와 무결성 제약조건

Edgar Codd 박사 : 키(Key)는 주어진 릴레이션에서 모든 인스턴스 가운데 유일함(Unique)을 보장해 주는 하나 이상의 애트리뷰트의 집합. Key = 튜플을 유일하게 식별할 수 있는 속성 집합! 키와 애트리뷰트는 다르다. 애트리뷰트를 키로 만들면 키. (하나 이상의 애트리뷰트로 구성된 키는? 복합키) 키의 유일성과 최소성 = 중복이 안되는 속성을 가지고 있고, 최소한의 속성값으로 하나를 찾아야 한다. (하나의 속성으로 찾을 수 있는데 또 하나의 속성을 추가해서 찾으면 최소성 위배) 슈퍼키(Super Key) = 유일성을 만족하면 슈퍼키. 최소성을 만족하든 만족하지 않든 한놈만 찾을 수 있다면! 슈퍼키. 후보키(Candidate Key) = 튜플을 유일하게 구분할 수 있은 최소 슈퍼키(한 릴레..

정처기 수준에서의 데이터베이스 - 관계형 데이터모델

표 = 테이블 = 릴레이션 Relation(Table) 개체와 관계사이는 Relationship 릴레이션쉽. 릴레이션과 릴레이션이 어떠한 관계를 가지게 된다면? 관계형 데이터베이스 릴레이션 스킴(Scheme) = 표구조 릴레이션 인스턴스(Instance) = 릴레이션에서 하나의 행 각각의 값을 인스턴스 튜플(Tuple) = Row = 하나의 행 그 자체 카디널리티(Cardinality) = 튜플의 수 속성(Attribute) = 릴레이션을 구성하는 각각의 열(Column) 차수(Degree) =속성의 수 도메인(Domain) = 속성이 취할 수 있는 같은 타입(ex.숫자,텍스트..)의 원자값들의 집합 ex) 학년이라는 속성의 도메인? 1~6 - 한 릴레이션에 포함된 튜플들은 모두 상이하다. - 모든 속성..

정처기 수준에서의 데이터베이스 - 데이터모델

데이터모델 현실세계의 정보들을 컴퓨터에 표현하기 위해 단순화, 추상화 형태로 체계적으로 표현하기 위한 개념적 모형. 데이터모델의 3가지 구성요소 1. Structure = 내가 옮기고자 하는 데이터는 어떤 구조를 가지고 있느냐? 2. Operation = 데이터베이스에서 어떤 연산이 일어날 것이냐? 3. Contraint = Contraint for Integrity! 데이터베이스가 구축된 이후에 그 데이터의 정확성을 유지하기 위해서! 개념적 데이터 모델 -요구조건 분석 -개념적 설계 - 무엇을 데이터베이스화 할꺼냐? Data Administrator - 개념적 설계가 끝나면 개념 스키마가 만들어진다. -논리적 설계 -물리적 설계 - 물리적 설계가 끝나면 내부 스키마가 만들어진다. ERD (개체 관계도)..

세그를 막는 방법! shouldPerformSegue!

스토리보드로 세그를 연결을 다해주었을때, 어떤 특별한 경우에 내가 세그를 막아서 다음 뷰로 넘어가지 않게 하려면 어떻게 해야할까? 그 답은 shouldPerformSegue라는 메소드가 해결사다. 나같은 경우에는 checker: Bool을 if문에 넣어 case별로 조절하였다. unwind와 비슷한 케이스로 함께 같이 많이 쓰이니 항상 유의하도록 하자. override func shouldPerformSegue(withIdentifier: String, sender: Any?) -> Bool { if checker == true { return true } return false } 오늘의 행복한 삽질~

EC2라는 것은 뭘까?

EC2 - Elastic Compute Cloud 탄력적인 컴퓨팅 클라우드 AWS에서 가장 널리, 자주 쓰이는 대표적인 IaaS 인터넷에 연결된 가상 서버를 제공 OS수준까지 제공, middle ware 같은 것들은 직접 설치 해줘야 한다. 가상 서버이고 직접 물리적으로 접근할 수 없기 때문에 터미널로 접근해야 함 EC2 상태 1. start(시작) : EC2 인스턴스를 시작하여, 운영체제를 직접 통제할 수 있는 상태 -> 시작 상태 부터 과금도 시작 2. stop(정지) : EC2 인스턴스르 정지한 상태. poweroff 상태와 동일 3. reboot(재부팅) : EC2 인스턴스를 재시작하는 상태. 4. terminate(종료) : EC2 인스턴스를 종료하고 모든 정보를 삭제한 상태. 삭제된 뒤에 목록..

Network 2018.09.11

RootViewController로 가는 두가지 방법

내 View가 3개 (화면1, 화면2, 화면3)가 있다고 가정을 할때 화면3에서 화면1로 가려면 어떻게 해야할까? 기본적으로 view는 stack구조라서 메모리 할당이 된 화면1과 화면2, 화면3이 순서대로 stack에 쌓인다. 나는 메인 스토리보드에서 화면3에서 화면1로 갈 때 그냥 segue로 show시키면 되는 줄 알았지만 그러면 화면1, 화면2, 화면3 그 위에 화면1이 올라온 상태라 굉장히 위험한 구조가 된다. 그렇다면 stack에 쌓여있는 것들을 한번에 빼고 루트뷰로 돌아갈 수 있을까? 답은 아래와 같다. 네비게이션 용self.navigationController?.popToRootViewController(animated: true)모델로 제시하기self.view.window!.rootVie..

Swift -Any, AnyObject, nil

Any, AnyObject, nil 이란?Any - Swift의 모든 타입을 지칭하는 키워드AnyObject - 모든 클래스 타입을 지칭하는 프로토콜nil - 없음을 의미하는 키워드 //MARK: - Anyvar someAny: Any = 100someAny = "어떤 타입도 수용 가능합니다"someAny = 123.12 let someDouble: Double = someAny //MARK: - AnyObjectclass SomeClass {}var someAnyObject: AnyObject = SomeClass()someAnyObject = 123.12 //오류 발생. //MARK: -nil someAny = nil //오류 발생 , 어떤 데이터 타입이라도 들어올 수 있지만 없는 값은 들어올 수 없..

Swift -기본 데이터 타입

Swift의 기본 데이터 타입 Bool, Int UInt, Float, Double, Character, String 1)Bool var someBool: Bool = true someBool = false 2)Int var someInt: Int = -100 3)UInt = 부호가 없는 integer var someUInt: UInt = 100 4)Float var someFloat: Float = 3.14 someFloat = 3 5)Double var someDouble: Double = 3.14 someDouble = 3 someDouble = someFloat //에러 발생. Swift는 굉장히 엄격한 언어이다. 6)Character var someCharacter: Character = "(태..

Swift- 변수와 상수

상수, 변수의 선언 상수 선언 키워드 let 변수 선언 키워드 var 상수의 선언 let 이름: 타입 = 값 변수의 선언 var 이름: 타입 = 값 값의 타입이 명확하다면 타입은 생략 가능 let 이름 = 값 var 이름 = 값 For instance) let constant: String = "차후에 변경이 불가능한 상수 let" var variable: String = "차후에 변경이 가능한 변수 var" 나중에 할당하려고 하는 상수나 변수는 타입을 꼭 명시해주어야 한다. let sum: Int let inputA: Int = 100 let inputB: Int = 200 sum = inputA + inputB sum = 1 //오류 발생 출처: https://www.youtube.com/watch?..

반응형