The following is a simple technical guide to help developers to publish their Android app on Google Play . Here is what you need : A Google Play publisher account (which is mainly an Android developper account). You can sign up from here Android Studio in order to generate your .apk file (the Android Application Package is a package file format used to distribute and install apps on Android) If…
Here’s what is in progress and what has been covered until now: A Tiny Intro to Database Systems A Tiny Intro to the Android Activity Lifecycle A Tiny Intro to GitHub Thank you for reading. If any suggestions, feel free to send me a tweet @dandancrisan
The following is a tutorial on the Android Activity Lifecycle, a concept that occurs pretty often during mobile dev interviews There is also an app to demo the topic , simple, a decent way to go through the cycles and process. It is one buck for the support but also open sourced on Github for people who like to learn with examples and more logs (it can be easily tested on Android Studio). Before…
Here is a short summary of DBMS : database management systems. Part of the motivation behind those little chapters is described in another blog post here . Introduction The Entity-Relationship Model The Relational Model Relational Algebra Very Basic SQL More Basic SQL Integrity Constraints Triggers On Disk and Buffer Management Indexing B+ trees Concurrency Control - Scheduling problems Schema…
Schema refinement is just a fancy term for saying polishing tables . It is the last step before considering physical design/tuning with typical workloads: 1) Requirement analysis : user needs 2) Conceptual design : high-level description, often using E/R diagrams 3) Logical design : from graphs to tables (relational schema) 4) Schema refinement : checking tables for redundancies and anomalies…
In real life, users access a database concurrently. Database access is done through transactions. What is a transaction ? a unit of work that has to be treated as “a whole” it has to happen in full or not at all A real life example of a transaction is money transfer: first, withdraw an amount X from account A second, deposit to account B The previous operation has to succeed in full. You can not…
In the previous section, Indexing Part 1 , we’ve seen that building an index for frequently used attributes considerably increases the efficiency of a query. In this section we’ll discuss the most widely used index implementation: the B+ Tree . Each node of a B+ tree is a page, a block of data. A page is the transfer unit to disk. We are already aware that a table spans on many blocks of data. We…
We learned in the last lecture that when data is stored on disks, it is sorted as a set of blocks of data (also called pages). A block is accessed as a whole, in its entirety. On the disk, blocks are structured as link lists: they both have a section containing data they both have a pointer to the location of the next node (next block/page) We will demonstrate how useful indexes are through a…
The Database Management System stores information at 3 levels of the memory hierarchy : Primary storage - main memory (and cache) : for currently used data, it is fast and usually volatile. Secondary storage - magnetic (“hard”) disk : for persistent data, it is relatively slow and nonvolatile. It stores the main database. Tertiary storage - tape : nonvolatile older version of the data. Now why…
A trigger is a procedure that executes automatically as soon as specified changes occur in the DBMS. A trigger has 3 parts: an event : at what type of change the procedure should happen? Usually it happens before/after/insteadOf an insert/update/delete. an action : what happens if the trigger runs? (example: add student to scholarshipStudList) a condition : under which condition the procedure gets…